Okay, that's enough for today.
This commit is contained in:
parent
f1087f96e4
commit
9e972a1e2f
|
@ -125,11 +125,7 @@ of the exponential growth in the top 11 places.
|
||||||
|
|
||||||
### 1st place is super important
|
### 1st place is super important
|
||||||
|
|
||||||
1st place is weighted so heavily that it's almost impossible to overcome without
|
1st place is weighted so heavily that one judge could move a 5th place dancer into 2nd.
|
||||||
your own 1st.
|
|
||||||
|
|
||||||
Take for example this scenario,
|
|
||||||
in which Adjudicator 1 has promised to give 1st place to Alice:
|
|
||||||
|
|
||||||
<table class="scorecard">
|
<table class="scorecard">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -137,23 +133,27 @@ in which Adjudicator 1 has promised to give 1st place to Alice:
|
||||||
<td></td>
|
<td></td>
|
||||||
<th>Alice</th>
|
<th>Alice</th>
|
||||||
<th>Bob</th>
|
<th>Bob</th>
|
||||||
|
<th>Carol</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="justify-left">Adj. 1</th>
|
<th class="justify-left">Adj. 1</th>
|
||||||
<td><input type="number" min=1 max=11 value=1 readonly></td>
|
<td><input type="number" min=1 max=99 value=1 readonly></td>
|
||||||
<td><input type="number" min=1 max=11 value=3></td>
|
<td><input type="number" min=1 max=99 value=3></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=2></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="justify-left">Adj. 2</th>
|
<th class="justify-left">Adj. 2</th>
|
||||||
<td><input type="number" min=1 max=11 value=1></td>
|
<td><input type="number" min=1 max=99 value=5></td>
|
||||||
<td><input type="number" min=1 max=11 value=3></td>
|
<td><input type="number" min=1 max=99 value=3></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=2></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="justify-left">Adj. 3</th>
|
<th class="justify-left">Adj. 3</th>
|
||||||
<td><input type="number" min=1 max=11 value=1></td>
|
<td><input type="number" min=1 max=99 value=5></td>
|
||||||
<td><input type="number" min=1 max=11 value=3></td>
|
<td><input type="number" min=1 max=99 value=3></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=2></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
|
@ -161,15 +161,66 @@ in which Adjudicator 1 has promised to give 1st place to Alice:
|
||||||
<th class="justify-left">Award Points</th>
|
<th class="justify-left">Award Points</th>
|
||||||
<td class="justify-right"><output name="points"></td>
|
<td class="justify-right"><output name="points"></td>
|
||||||
<td class="justify-right"><output name="points"></td>
|
<td class="justify-right"><output name="points"></td>
|
||||||
|
<td class="justify-right"><output name="points"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="justify-left">Ranking</th>
|
<th class="justify-left">Ranking</th>
|
||||||
<td class="justify-right"><output name="ranking"></td>
|
<td class="justify-right"><output name="ranking"></td>
|
||||||
<td class="justify-right"><output name="ranking"></td>
|
<td class="justify-right"><output name="ranking"></td>
|
||||||
|
<td class="justify-right"><output name="ranking"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
You can adjust these values to get a better feel for how scoring works.
|
||||||
|
|
||||||
|
|
||||||
|
### Tanking a high-ranked dancer is another way to cheat
|
||||||
|
|
||||||
|
Because of that exponential curve,
|
||||||
|
a low ranking from a single judge can carry a lot of weight.
|
||||||
|
|
||||||
|
<table class="scorecard">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<th>Alice</th>
|
||||||
|
<th>Bob</th>
|
||||||
|
<th>Carol</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th class="justify-left">Adj. 1</th>
|
||||||
|
<td><input type="number" min=1 max=99 value=3></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=11></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=2></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th class="justify-left">Adj. 2</th>
|
||||||
|
<td><input type="number" min=1 max=99 value=3></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=1></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=2></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th class="justify-left">Adj. 3</th>
|
||||||
|
<td><input type="number" min=1 max=99 value=3></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=2></td>
|
||||||
|
<td><input type="number" min=1 max=99 value=2></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th class="justify-left">Award Points</th>
|
||||||
|
<td class="justify-right"><output name="points"></td>
|
||||||
|
<td class="justify-right"><output name="points"></td>
|
||||||
|
<td class="justify-right"><output name="points"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th class="justify-left">Ranking</th>
|
||||||
|
<td class="justify-right"><output name="ranking"></td>
|
||||||
|
<td class="justify-right"><output name="ranking"></td>
|
||||||
|
<td class="justify-right"><output name="ranking"></td>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
|
|
@ -29,9 +29,10 @@ function scorecardUpdate(scorecard) {
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
let rankedPoints = [...points].sort((a, b) => b - a)
|
||||||
let i = 0
|
let i = 0
|
||||||
for (let out of scorecard.querySelectorAll("tfoot output[name='ranking']")) {
|
for (let out of scorecard.querySelectorAll("tfoot output[name='ranking']")) {
|
||||||
out.value = scores[i]
|
out.value = rankedPoints.indexOf(points[i]) + 1
|
||||||
i += 1
|
i += 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,3 @@
|
||||||
.winner {
|
|
||||||
color:cornsilk;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure img {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.warning {
|
.warning {
|
||||||
color: #e64;
|
color: #e64;
|
||||||
display: none;
|
display: none;
|
||||||
|
|
|
@ -24,6 +24,7 @@ input {
|
||||||
border: thin solid #ccc;
|
border: thin solid #ccc;
|
||||||
}
|
}
|
||||||
input:read-only {
|
input:read-only {
|
||||||
|
color: #444;
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,7 +152,7 @@ legend {
|
||||||
}
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
margin: 1em;
|
margin: 1em 0;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
thead, tfoot {
|
thead, tfoot {
|
||||||
|
@ -189,6 +190,10 @@ caption {
|
||||||
img, video {
|
img, video {
|
||||||
max-width: 60%;
|
max-width: 60%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
figure img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
html {
|
html {
|
||||||
|
|
Loading…
Reference in New Issue