Имеется форма для ввода данных:
Прогноз - вводятся 2 цифры - предполагаемый счет матча (другими словами количество голов забитые командами).
Результат - вводятся 2 цифры - конечный результат матча.
function ballResult() {
var prog1 = document.getElementById('prog1').value,
/* прогноз голов забитых командой 1*/
prog2 = document.getElementById('prog2').value,
/* прогноз голов забитых командой 2*/
res1 = document.getElementById('res1').value,
/* результат - забитые командой 1*/
res2 = document.getElementById('res2').value,
/* результат - забитые командой 2*/
ball = 9 - Math.abs(prog1 - res1) - Math.abs(prog2 - res2); /* формула начисления очков */
document.getElementById('result').innerHTML = ball; /* вывод начисленнх очков */
}
#prog1,
#prog2,
#res1,
#res2 {
width: 36px;
height: 36px;
text-align: center
}
<div>
<table>
<tr>
<td> <b>Прогноз </b> Питтсбург</td>
<td>
<div>
<input type="text" id="prog1" value="" placeholder="голы команды 1">
</div>
</td>
<td>
<div>
<input type="text" id="prog2" value="" placeholder="голы команды 2">
</div>
</td>
<td>Нэшвилл</td>
</tr>
<tr>
<td> <b>Результат </b> Питтсбург</td>
<td>
<div>
<input type="text" id="res1" value="" placeholder="голы команды 1">
</div>
</td>
<td>
<div>
<input type="text" id="res2" value="" placeholder="голы команды 2">
</div>
</td>
<td>Нэшвилл</td>
</tr>
<tr>
<td>
<div>
<a href="#" onclick='ballResult()' class="submit">Рассчитать</a>
</div>
</td>
</tr>
<tr>
<td>
<div class="form-group">
Очки <output id="result"></output>
</div>
</td>
</tr>
</table>
</div>
Формула начисления очков должна начислять очки исходя из установленных условий:
за 1 матч можно получить максимум 9 очков, минимум - 0 очков.
1. Если игрок угадал исход матча (выигрыш, ничья или поражение), то ему начисляются очки в диапазоне от 3 до 9. Чем точнее прогноз к результату матча, тем очков больше.
2. Игрок получает 1 очко при не угаданном исходе, если он получил за матч 2,5 штрафных балла (ШБ - как они рассчитываются см.ниже под спойлером).
3. В остальных случаях очки за матч не начисляются.
При угаданном исходе игрок может получить 9, 7, 6, 5, 4, или 3 очка в зависимости от количества штрафных баллов (заданы диапазоном) в соответствии со следующей таблицей:
-----------------
Штраф Очки
-----------------
0 9 (угадан счет)
2 - 2,5 7
4 - 6 6
6.5 - 9 5
9.5 - 12 4
>12 3
-----------------
Вот примеры начисления очков с которыми можно сверятся:
Прогноз Результат Очки
3-2 3-2 9 (угадан счет матча)
3-2 4-3 7 (угадан исход, количество ШБ = 2)
3-3 4-4 7 (угадан исход, количество ШБ = 2)
3-2 4-2 7 (угадан исход, количество ШБ = 2,5)
3-2 5-4 6 (угадан исход, количество ШБ = 4)
3-3 5-5 6 (угадан исход, количество ШБ = 4)
3-2 5-3 6 (угадан исход, количество ШБ = 4,5)
3-2 5-2 6 (угадан исход, количество ШБ = 5)
3-2 4-1 6 (угадан исход, количество ШБ = 5)
3-2 6-5 6 (угадан исход, количество ШБ = 6)
3-3 6-6 6 (угадан исход, количество ШБ = 6)
3-2 6-4 5 (угадан исход, количество ШБ = 6,5)
3-2 6-3 5 (угадан исход, количество ШБ = 7)
3-2 6-2 5 (угадан исход, количество ШБ = 7,5)
3-2 4-0 5 (угадан исход, количество ШБ = 7,5)
3-2 7-6 5 (угадан исход, количество ШБ = 8)
3-3 7-7 5 (угадан исход, количество ШБ = 8)
3-2 7-5 5 (угадан исход, количество ШБ = 8,5)
3-2 7-4 5 (угадан исход, количество ШБ = 9)
3-2 7-3 4 (угадан исход, количество ШБ = 9,5)
3-2 7-2 4 (угадан исход, количество ШБ = 10)
3-3 8-8 4 (угадан исход, количество ШБ = 10)
3-2 8-6 4 (угадан исход, количество ШБ = 10,5)
3-2 8-5 4 (угадан исход, количество ШБ = 11)
3-2 8-4 4 (угадан исход, количество ШБ = 11,5)
3-3 9-9 4 (угадан исход, количество ШБ = 12)
3-2 8-2 3 (угадан исход, количество ШБ >12)
3-3 10-10 3 (угадан исход, количество ШБ > 12)
3-2 14-1 3 (угадан исход, количество ШБ > 12)
3-2 3-3 1 (исход не угадан, количество ШБ = 2,5)
4-4 3-4 1 (исход не угадан, количество ШБ = 2,5)
2-0 1-2 0 (исход не угадан, количество ШБ > 2,5)
3-3 4-2 0 (исход не угадан, количество ШБ > 2,5)
Формула, которая сейчас прописана в коде частично начисляет очки с ошибками. То есть угаданный счет и ошибку в 1 отклонение она считает правильно. Но остальное не правильно ( в частности не учитывает угаданный/не угаданный исход.
В javascript знаком поверхностно.Надеюсь на вашу доброту.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Могу ли я хранить в games для каждой игры свои переменные со значениями id_game и href_game?
Как выполнить POST запрос на бэке на другой бэк и получить response? (аналог fetch на фронте)
Есть массив объектовИз него нужно получить сумму полей price только из тех объектов у которых paid === true и pass совпадает с pass из первого объекта...