Starting a new UI

This commit is contained in:
Neale Pickett 2016-04-04 00:07:38 +00:00
parent 55f8ef524f
commit ff1f84f1a5
39 changed files with 372 additions and 463 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

View File

@ -1,75 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>Welcome</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<h1><img src="images/tf6.png" alt="Tracer FIRE"></h1>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="res/style.css">
<link rel="icon" href="res/luna-moth.svg">
<link rel="icon" href="res/luna-moth.png">
<nav>
<ul>
<li><a href="register.html">Register</a></li>
<li><a href="puzzles.html">Puzzles</a></li>
<li><a href="scoreboard.html">Scoreboard</a></li>
</ul>
</nav>
<script src="res/terminal.js"></script>
<script src="res/moth.js"></script>
<section>
<h2>Getting Started</h2>
<p>
Here is what you need to do:
</p>
<ol>
<li>
<a href="register.html">Register</a> your team.
This only needs to happen once per team,
so if somebody else on your team has already done it,
you don't need to.
</li>
<li>
Get an <a href="puzzles.html">overview of puzzles</a>,
and start working on something.
The list of open puzzles changes over time,
you need to reload the page to get the current version!
</li>
<li>
Check the <a href="scoreboard.html">scoreboard</a>
in another tab,
to see how your team is doing.
</li>
</ol>
</section>
<section>
<h2>Reading Material</h2>
<p>
Stuck? Taking a break?
Here are some things to read.
</p>
<ul>
<li><a href="credits.html">Credits</a></li>
<li>
<a href="scoring.html">About Scoring</a>
explains how we calculate scores,
and why.
Reading this will help you formulate a strategy to win.
</li>
</ul>
</section>
<section id="sponsors">
<img src="images/lanl.png" alt="Los Alamos National Laboratory">
<img src="images/doe.png" alt="US Department Of Energy">
<img src="images/sandia.png" alt="Sandia National Laboratories">
</section>
</body>
<title>MOTH Dashboard</title>
</head>
<body>
<div id="output">
</div>
</body>
</html>

View File

@ -1,3 +0,0 @@
[
"scoreboard.html"
]

View File

@ -1,73 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Scoreboard</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script src="scoreboard.js" async></script>
<style>
body, html {
width: 100%;
height: 100%;
overflow: hidden;
cursor: none;
}
iframe {
width: 100%;
height: 100%;
border: none;
margin: 0;
padding: 0;
}
</style>
<script>
var SECS = 1000, DELAY = 30*SECS;
var urls = ["scoreboard.html"];
var stack = [];
var i = 0;
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
// update urls
urls = JSON.parse(xmlhttp.responseText);
console.log("new urls:", urls);
}
}
xmlhttp.open("GET", "projections.json", true);
xmlhttp.send();
function reload() {
// alternate between scoreboard and other things
if (i%2){
url = urls[0];
}
else {
if (stack.length === 0){
xmlhttp.open("GET", "projections.json", true);
xmlhttp.send();
if (urls.length > 1){
stack = urls.slice(1);
}
else {
stack = urls;
}
}
url = stack.pop();
console.log("loading " + url + " of " + urls);
}
document.getElementById("reloader").src = url;
i++;
}
function init() {
setInterval(reload, DELAY);
}
window.addEventListener("load", init);
</script>
</head>
<body>
<iframe id="reloader" src="scoreboard.html"></iframe>
</body>
</html>

BIN
www/res/luna-moth.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

274
www/res/luna-moth.svg Normal file
View File

@ -0,0 +1,274 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2"
sodipodi:docname="luna-moth.svg"
viewBox="0 0 435.58 606.43"
version="1.1"
inkscape:version="0.91 r13725">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
bordercolor="#666666"
inkscape:pageshadow="2"
inkscape:window-y="27"
fit-margin-left="0"
pagecolor="#ffffff"
fit-margin-top="0"
inkscape:window-maximized="1"
inkscape:zoom="0.98994949"
inkscape:window-x="0"
inkscape:window-height="716"
showgrid="false"
borderopacity="1.0"
inkscape:current-layer="layer1"
inkscape:cx="325.81575"
inkscape:cy="175.14133"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1366"
inkscape:pageopacity="0.0"
inkscape:document-units="px" />
<g
id="layer1"
inkscape:label="Calque 1"
inkscape:groupmode="layer"
transform="translate(-169.61 -199.65)">
<g
id="g4449"
transform="matrix(-0.88604614,0.46359708,0.46359708,0.88604614,470.47926,-197.23926)">
<g
id="g5242"
transform="matrix(1.5856107,0.2341624,0.16998437,1.0681247,-408.59758,-19.14161)">
<path
d="m 486.09807,434.34389 c 0,0 33.21943,37.1978 28.44237,74.37852 -9.69431,-1.18729 -28.05784,-15.23506 -49.27832,31.40255 -26.1093,57.38302 4.04174,56.10536 -8.44016,86.24229 -12.48109,30.13515 -22.15846,-14.83784 -21.15287,-20.87068 27.75853,-86.95342 19.16417,-80.74245 50.42898,-171.15268 z"
inkscape:connector-curvature="0"
style="fill:#a0b977;stroke:#fff6a4;stroke-width:0.84436792"
id="path3012"
sodipodi:nodetypes="ccsscc" />
<path
sodipodi:nodetypes="ccsscc"
id="path5252"
style="fill:#a0b977;stroke:#fff6a4;stroke-width:0.84436792"
inkscape:connector-curvature="0"
d="m 483.14429,428.90547 c 0,0 -49.53236,20.97257 -65.01984,56.05329 9.315,2.5399 33.23264,-3.21777 27.44694,46.44614 -7.11913,61.10645 -33.44802,48.75472 -38.28907,80.38979 -4.84082,31.6332 27.73702,-5.05478 30.04352,-10.83255 28.20085,-88.31453 25.759,-79.4494 45.81845,-172.05667 z" />
</g>
<g
id="g2994"
transform="translate(137.37681,206.38155)">
<g
id="g2996">
<path
id="path2998"
style="opacity:0.65;fill:#988378"
inkscape:connector-curvature="0"
d="m 331.9,266.68 c 0,0 -3.033,-36.711 32.988,-31.248 0.001,0 -8.798,28.704 -32.988,31.248 z" />
<path
id="path3000"
style="opacity:0.65;fill:none;stroke:#4d2b2b"
inkscape:connector-curvature="0"
d="m 365.19,236.01 c -16.611,5.02 -37.262,34.979 -37.262,34.979" />
</g>
<g
id="g3002">
<path
id="path3004"
style="opacity:0.65;fill:#988378"
inkscape:connector-curvature="0"
d="m 322.29,263.16 c 0,0 30.612,-20.489 3.905,-45.27 0,0 -16.978,24.759 -3.905,45.27 z" />
<path
id="path3006"
style="opacity:0.65;fill:none;stroke:#4d2b2b"
inkscape:connector-curvature="0"
d="m 325.56,218.02 c 6.415,16.123 -4.164,50.937 -4.164,50.937" />
</g>
<g
id="g3008">
<g
id="g3014">
<g
id="g3016">
<path
id="path3018"
style="fill:#a0b977;stroke:#fff8bd"
inkscape:connector-curvature="0"
d="m 312.76,265.25 c 0,0 -7.279,-0.166 -8.315,3.177 0,0 -10.622,-1.202 -12.795,0.741 -2.173,1.943 -83.173,23.401 -105.58,33.197 -22.412,9.798 -52.957,23.878 -62.557,56.499 -9.601,32.618 47.177,25.109 47.177,25.109 0,0 15.808,-0.329 43.093,11.279 27.285,11.609 68.089,11.708 84.028,-43.027 0,0 -19.067,71.565 45.054,82.563 64.119,11 88.375,59.362 91.092,15.183 2.717,-44.179 2.635,-40.541 -25.9,-81.855 -28.537,-41.314 -53.385,-72.585 -53.385,-72.585 0,0 -0.527,-10.11 -11.182,-12.893 0,0 -0.28,-5.846 -6.373,-9.83 -0.001,0 -7.393,-10.433 -24.354,-7.558 z" />
<path
id="path3020"
style="fill:#fff8bd"
inkscape:connector-curvature="0"
d="m 360.56,302.09 c -3.478,-4.498 -5.454,-6.984 -5.454,-6.984 0,0 -0.527,-10.111 -11.182,-12.893 0,0 -0.279,-5.846 -6.371,-9.831 0,0 -7.394,-10.434 -24.355,-7.559 0,0 -7.277,-0.165 -8.315,3.178 0,0 -10.621,-1.202 -12.794,0.741 -0.426,0.382 -3.868,1.507 -9.299,3.149 l -6.162,11.986 c 0,0 26.633,-7.093 27.148,2.491 0.516,9.583 5.73,11.9 5.73,11.9 0,0 3.08,11.078 2.149,17.07 0,0 6.907,-12.514 10.485,-12.8 0,0 9.773,1.124 11.463,-7.692 0,0 16.849,10.656 21.34,16.184 0.237,0.292 0.439,0.568 0.604,0.828 3.271,5.205 5.013,-9.768 5.013,-9.768 z" />
<path
id="path3022"
style="fill:none;stroke:#fff8bd"
inkscape:connector-curvature="0"
d="m 313.73,311.85 c 0,0 -13.709,22.16 -17.873,49.646" />
<path
id="path3024"
style="fill:#fff8bd"
inkscape:connector-curvature="0"
d="m 225.91,315.99 c 0,0 6.543,21.195 22.854,12.133 0,0 -8.072,-8.788 -10.24,-9.892 -2.168,-1.102 -6.429,-1.994 -6.429,-1.994 l 3.36,-11.951 c 0,0 -1.844,-4.046 -9.545,11.704 z" />
<path
id="path3026"
style="fill:#fff8bd"
inkscape:connector-curvature="0"
d="m 379.47,367.78 c 0,0 -15.43,8.015 -24.641,-3.771 l 10.435,-3.478 c 0,0 8.961,1.849 8.698,2.699 -0.265,0.851 6.322,-6.878 6.322,-6.878 0,0 3.014,7.895 -0.814,11.428 z" />
<path
id="path3028"
style="fill:#4d2b2b"
inkscape:connector-curvature="0"
d="m 229.7,317.19 c 0,0 8.137,15.76 18.629,10.824 0,0 -8.191,-6.876 -8.109,-7.558 0.082,-0.682 -8,-5.868 -10.52,-3.266 z" />
<path
id="path3030"
style="fill:#4d2b2b"
inkscape:connector-curvature="0"
d="m 374.9,364.06 c 0,0 -15.354,8.875 -21.523,-0.941 0,0 10.607,-1.369 10.906,-1.986 0.299,-0.619 9.903,-0.626 10.617,2.927 z" />
<g
id="g3032">
<path
id="path3034"
style="fill:#988378"
inkscape:connector-curvature="0"
d="m 341.58,278.41 c 2.846,1.426 1.744,5.08 1.744,5.08 10.654,2.782 11.182,12.894 11.182,12.894 0,0 24.85,31.27 53.385,72.584 28.537,41.315 27.662,40.764 24.943,84.943 0,0 0.961,-3.087 -0.504,-18.654 -1.465,-15.565 -5.752,-23.075 -5.752,-23.075 -12.012,-29.904 -42.311,-57.106 -42.311,-57.106 1.119,3.139 -6.828,16.378 -4.391,11.899 2.438,-4.479 0.834,-10.56 -0.529,-8.413 -1.367,2.148 -3.982,9.456 -7.013,5.725 -3.029,-3.732 -1.735,-2.285 -12.151,-1.33 -10.42,0.955 -6.982,-1.119 -6.982,-1.119 -0.889,2.865 6.521,-0.768 6.521,-0.768 10.789,-3.283 14.434,-0.406 14.434,-0.406 l 2.492,-6.906 c 5.588,-10.133 -29.023,-47.05 -32.24,-54.68 -3.217,-7.629 -7.158,-9.549 -7.158,-9.549 2.932,-6.071 -15.424,-6.533 -15.424,-6.533 -0.482,-2.943 -7.926,-5.949 -13.338,-7.629 -5.412,-1.68 -2.876,3.643 -2.876,3.643 -1.515,-1.865 -8.749,0.079 -16.517,4.299 -7.768,4.221 -29.491,8.996 -40.82,11.763 -11.329,2.766 -14.416,18.339 -14.416,18.339 0,0 5.523,0.191 8.379,5.614 2.854,5.422 6.021,8.15 6.021,8.15 0,0 0.098,4.742 -5.435,-2.732 -5.533,-7.478 -13.437,-7.313 -13.437,-7.313 l 3.704,-11.938 c -4.347,3.886 -7.491,12.333 -7.491,12.333 -1.203,-4.561 3.16,-15.247 3.16,-15.247 0,0 -26.412,7.509 -53.154,14.392 -26.741,6.883 -46.178,32.961 -46.178,32.961 12.879,-23.555 37.309,-38.035 56.473,-46.413 22.411,-9.798 103.41,-31.254 105.58,-33.197 2.174,-1.942 12.795,-0.741 12.795,-0.741 0.52,-1.671 2.598,-2.466 4.547,-2.842 0,0 14.472,4.288 15.098,9.018 0.001,0 6.241,-2.764 17.655,2.954 z" />
<path
id="path3036"
style="fill:#4d2b2b"
inkscape:connector-curvature="0"
d="m 403.91,370.46 c -27.5,-39.816 -50.17,-74.071 -50.17,-74.071 0,0 -0.508,-9.744 -10.775,-12.426 0,0 1.061,-3.521 -1.682,-4.896 -11.001,-5.509 -17.014,-2.846 -17.014,-2.846 -0.604,-4.56 -14.551,-8.693 -14.551,-8.693 -1.878,0.363 -3.883,1.13 -4.381,2.739 0,0 -10.236,-1.157 -12.332,0.715 -2.095,1.872 -79.716,27.89 -101.31,37.332 0,0 108.65,-38.886 110.44,-35.965 0,0 2.538,-0.563 4.079,-0.085 0,0 1.508,-5.949 6.385,-2.073 0,0 2.324,-0.963 9.282,4.91 l 1.392,3.133 c 0,0 5.651,-3.311 11.19,0.771 0,0 8.491,-1.079 6.696,5.792 0,0 6.988,2.507 9.793,9.793 l 0.469,2.847 52.489,73.023 z" />
</g>
</g>
<g
id="g3038"
style="opacity:0.5" />
</g>
<g
id="g3050"
style="opacity:0.2">
<g
id="g3052">
<path
id="path3054"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 193.51,313.22 c 0,0 -5.379,15.082 -24.865,26.137 -19.486,11.057 -23.777,32.758 -23.777,32.758" />
<path
id="path3056"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 229.05,308.89 c 0,0 -17.959,18.51 -37.127,29.663 -19.166,11.153 -27.597,31.571 -27.927,36.007" />
<path
id="path3058"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 219.07,341.05 c 0,0 -24.876,10.43 -32.637,37.687" />
<path
id="path3060"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 237.68,338.45 c 0,0 -28.399,28.531 -29.662,43.846" />
<path
id="path3062"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 301.4,299.58 c 0,0 -8.387,63.012 -22.965,81.872" />
<path
id="path3064"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 284.8,292.34 c 0,0 -22.351,40.531 -18.574,59.851" />
</g>
<g
id="g3066">
<path
id="path3068"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 409.42,384 c 0,0 -4.191,15.455 5.504,35.652 9.695,20.199 0.838,40.471 0.838,40.471" />
<path
id="path3070"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 382.7,360.17 c 0,0 4.191,25.448 13.566,45.545 9.377,20.094 4.648,41.675 2.391,45.505" />
<path
id="path3072"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 372.55,392.27 c 0,0 14.479,22.76 5.299,49.573" />
<path
id="path3074"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 358.75,379.52 c 0,0 7.042,39.637 -0.657,52.934" />
<path
id="path3076"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 328.6,311.25 c 0,0 -29.065,56.534 -27.854,80.341" />
<path
id="path3078"
style="fill:none;stroke:#fdee72"
inkscape:connector-curvature="0"
d="m 346.36,314.77 c 0,0 -4.771,46.039 -18.897,59.751" />
</g>
</g>
</g>
</g>
</g>
</g>
<metadata
id="metadata4698">
<rdf:RDF>
<cc:Work>
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
<dc:publisher>
<cc:Agent
rdf:about="http://openclipart.org/">
<dc:title>Openclipart</dc:title>
</cc:Agent>
</dc:publisher>
<dc:title></dc:title>
<dc:date>2012-05-15T03:53:14</dc:date>
<dc:description>luna moth, moon, night, butterfly</dc:description>
<dc:source>https://openclipart.org/detail/170025/papillon-lune-by-presquesage</dc:source>
<dc:creator>
<cc:Agent>
<dc:title>presquesage</dc:title>
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag>
<rdf:li>butterfly</rdf:li>
<rdf:li>luna moth</rdf:li>
<rdf:li>lune</rdf:li>
<rdf:li>moon</rdf:li>
<rdf:li>night</rdf:li>
<rdf:li>nuit</rdf:li>
<rdf:li>papillon</rdf:li>
</rdf:Bag>
</dc:subject>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

12
www/res/moth.js Normal file
View File

@ -0,0 +1,12 @@
// Moth dashboard
// requires: terminal.js
function start() {
var t = new Terminal(document.getElementById("output"));
t.par("This is a paragraph, bitches!");
t.pre("This is pre");
t.par("Another par");
}
window.addEventListener("load", start);

1
www/res/style.css Normal file
View File

@ -0,0 +1 @@

71
www/res/terminal.js Normal file
View File

@ -0,0 +1,71 @@
function tx(element, text, bps) {
var drawTimer;
var sp = false;
function draw() {
c = text[0];
if ((c == " ") || (c == "\n")) {
sp = true;
c = " ";
} else if (sp) {
c = " " + c;
sp = false;
}
element.textContent += c;
text = text.substr(1);
if (text == "") {
clearInterval(drawTimer);
return;
}
}
// N81 uses 1 stop bit, and 1 parity bit.
// That works out to exactly 10 bits per byte.
msec = 10000 / bps;
drawTimer = setInterval(draw, msec);
draw();
}
function Terminal(target, bps) {
bps = bps || 1200;
var outq = [];
var outTimer;
function drawElement() {
var next = outq.shift();
var out = document.createElement(next[0]);
target.appendChild(out);
tx(out, next[1], bps);
if (outq.length == 0) {
clearInterval(outTimer);
}
}
this.enqueue = function(tag, txt) {
outq.push([tag, txt]);
if (! outTimer) {
outTimer = setInterval(drawElement, 150);
}
}
this.par = function(txt) {
this.enqueue("p", txt);
}
this.pre = function(txt) {
this.enqueue("pre", txt);
}
}
//
// Usage:
//
// var e = Terminal(document.getElementById("output"));
// e.output("This is a paragraph. It has sentences.");
// e.output("This is a second paragraph.");
//

View File

@ -1,263 +0,0 @@
/*
Light blue: #96d1e3
Off-white blue: #b9e0ef
Dark brown: #35170c
Light brown: #432115
Tan: #e1caa5
*/
@import "fonts/maven_pro.css";
html {
/* background: #35170c url(images/tf6bg.png) center top;*/
/* background-repeat: repeat-x;*/
background: #35170c url(images/tf6bg.png) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
/* min-height: 100%;*/
font-family: "Maven Pro", Ubuntu, sans-serif;
overflow-y: auto;
}
h1, h2, h3 {
color: #AD6F15;
font-family: "Maven Pro", Ubuntu, sans-serif;
font-weight: bold;
}
body > h1:first-child {
color: #96d1e3;
font-size: 3em;
border-radius: 0.2em;
padding: 0 0.3em;
text-align: center;
max-width: 66%;
margin: 0.5em auto;
}
body > h1:first-child img {
max-width: 66%;
}
.readme, pre {
background-color: #FFDAA3;
border-radius: 0.5em;
}
input {
font-family: "Maven Pro", Ubuntu, sans-serif;
}
a {
color: #432115;
text-decoration: underline;
}
a:hover {
color: #9E1336;
}
a img {
border: 0px;
}
pre {
border: solid #ddc 2px;
padding: 0.25em;
font-family: "Ubuntu Mono", monospace;
overflow: auto;
}
code, kbd, samp {
font-family: "Ubuntu Mono", monospace;
}
th {
vertical-align: top;
text-align: center;
}
td {
vertical-align: top;
text-align: left;
}
dt {
font-weight: bold;
}
p {
line-height: 1.4em;
margin-bottom: 20px;
}
hr {
border: 1px solid #ddc;
}
#prompt {
color: #0E7450;
border-radius: 0.2em;
}
#cli {
background: rgba(14, 116, 80, 0.2);
color: #00120C;
width: 100%;
border: 0px;
padding: 0.1em 0.1em;
}
#readme img {
max-width: 100%;
transition: all .2s ease;
}
#readme img:hover {
transform: scale(1.5);
}
/**** Section ****/
section, nav, address {
color: #35170c;
max-width: 35em;
border-radius: 0.6em;
margin: 1em auto;
padding: 0.5em;
}
section, address {
background: #e1caa5;
}
/*** navigation bar ***/
nav {
background: #b9e0ef;
}
nav h2 {
display: none;
}
nav ul {
list-style: none;
text-align: center;
padding: 0;
}
nav li {
display: inline;
}
nav li a {
text-transform: lowercase;
font-size: 0.9em;
}
nav li + li:before {
content: " | ";
}
#sponsors {
background: #b9e0ef;
text-align: center;
opacity: 0.8;
}
#sponsors img {
max-width: 33%;
max-height: 5em;
margin: 1em;
}
/**** Terminal ****/
#terminal {
padding: 10px;
max-width: 35em;
margin: 1em auto;
border-radius: 1em;
}
#terminal #output {
max-height: 20em;
overflow-y: scroll;
}
#terminal #output::-webkit-scrollbar
{
width: 0.7em;
}
#terminal #output::-webkit-scrollbar-track
{
border-radius: 0.7em;
background-color: rgba(173, 111, 21, 0.4);
}
#terminal #output::-webkit-scrollbar-thumb
{
border-radius: 0.7em;
background-color: #FFDAA3;
border: solid rgba(173, 111, 21, 0.4) 1px;
}
/**** Scoreboard ****/
#scoreboard {
width: 100%;
clear: both;
background: rgba(25, 0, 6, 0.8);
border-radius: 2em;
}
#scoreboard span {
font-size: 75%;
display: inline-block;
margin: 0;
border: 0;
overflow: hidden;
height: 2.2em;
}
#scoreboard .teamname {
font-size: 133%;
color: #D84B6E;
opacity: 0.8;
position: absolute;
right: 1em;
height: 1.1em;
}
#scoreboard div * {white-space: nowrap;}
.cat0, .cat8, .cat16 {background-color: #a6cee3; color: black;}
.cat1, .cat9, .cat17 {background-color: #1f78b4; color: white;}
.cat2, .cat10, .cat18 {background-color: #b2df8a; color: black;}
.cat3, .cat11, .cat19 {background-color: #33a02c; color: white;}
.cat4, .cat12, .cat20 {background-color: #fb9a99; color: black;}
.cat5, .cat13, .cat21 {background-color: #e31a1c; color: white;}
.cat6, .cat14, .cat22 {background-color: #fdbf6f; color: black;}
.cat7, .cat15, .cat23 {background-color: #ff7f00; color: black;}
.wide {
max-width: inherit;
}
.figure {
margin: 0.5em 1em;
float: right;
font-size: small;
text-align: center;
}

View File

@ -1,54 +0,0 @@
var baud = 1200;
function tx(element, text, baud_) {
var drawTimer;
baud_ = baud_ || baud;
var sp = false;
function draw() {
c = text[0];
if ((c == " ") || (c == "\n")) {
sp = true;
c = " ";
} else if (sp) {
c = " " + c;
sp = false;
}
element.textContent += c;
text = text.substr(1);
if (text == "") {
clearInterval(drawTimer);
return;
}
}
// N81 uses 1 stop bit, and 1 parity bit.
// That works out to exactly 10 bits per byte.
msec = 10000 / baud_;
drawTimer = setInterval(draw, msec);
draw();
}
var outq = [];
var outTimer;
function drawPar() {
oute = document.getElementById("output");
outp = document.createElement("p");
oute.appendChild(outp);
tx(outp, outq.shift());
if (outq.length == 0) {
clearInterval(outTimer);
}
}
function output(par) {
outq = outq.concat(par);
if (! outTimer) {
outTimer = setInterval(drawPar, 150);
}
}