Повышение контактного урона:
Цена: 5, сумма: 0
Цена: 7, сумма: 5 \ 0+5=5 True
Цена: 8, сумма: 12 \ 5+7=12 True
Цена: 10, сумма: 20 \ 12+8=20 True
Цена: 13, сумма: 29 \ 20+10=29 False
Цена: 16, сумма: 42 \ 29+13=42 True
Цена: 20, сумма: 57 \ 42+16=57 False
Цена: 24, сумма: 76 \ 57+20=76 False
впечатление что прогнозируемая "Цена" учитывает формулу с округлением вверх, а последующий фактический подсчет который отображает "сумма" идет по формуле с округлением вниз, отсюда несоответствие
неважно куда, вверх или вниз, сделать бы одинаковые формулы для вычисления цены и суммы
ИИ считать не умеет
-
Темный Лорд
- Сообщения: 3521
- Зарегистрирован: 15 дек 2014, 09:40
- Имя героя: Темный Лорд
Re: ИИ считать не умеет
Это потому, что на самом деле там цены:
5
6.25
7.8125
9.765625
12.20703125
15.258789625
Ибо конкретный элемент геометрической прогрессии вычисляется по стандартной формуле:
basePrice * Math.pow(coefficient, points)
А сумма ряда элементов геометрической прогрессии вычисляется по другой стандартной формуле:
(basePrice * (Math.pow(coefficient, points) - 1)) / (coefficient - 1)
В каждом случае значение округляется вверх, поэтому сумма формуле может быть меньше суммы ранее округлённых элементов.
Чуть подробней, пожалуйста про ситуацию
5
6.25
7.8125
9.765625
12.20703125
15.258789625
Ибо конкретный элемент геометрической прогрессии вычисляется по стандартной формуле:
basePrice * Math.pow(coefficient, points)
А сумма ряда элементов геометрической прогрессии вычисляется по другой стандартной формуле:
(basePrice * (Math.pow(coefficient, points) - 1)) / (coefficient - 1)
В каждом случае значение округляется вверх, поэтому сумма формуле может быть меньше суммы ранее округлённых элементов.
Чуть подробней, пожалуйста про ситуацию
Темный Лорд писал(а): ↑Вчера, 19:52если снять один пункт, обратно его уже вернуть не получается, пишут недостаточно очков, хотя только что очков было достаточно
Делитесь и перемножайтесь
-
Темный Лорд
- Сообщения: 3521
- Зарегистрирован: 15 дек 2014, 09:40
- Имя героя: Темный Лорд
Re: ИИ считать не умеет
первая формула высчитывает и получает цифру 10
вторая формула высчитывает и получает цифру 9
раз обе формулы округляют вверх, тогда они разные цифры выходит считают
что высчитывает первая формула, она говорит игроку сколько надо потратить очков
что высчитывает вторая формула, она тратит эти очки
первая говорит надо потратить 10
вторая говорит пошла ты нафик, я потрачу 9
но если у игрока нету 10 очков, его не допустят ко второй формуле
возьмите ровно 29 очков и пробуйте взять на них 4 контактного урона, но не сразу все 4, а по одному, взяли 1, нажали галочку, взяли 2, нажали галочку, взяли 3, нажали галочку, 4 взять не получится
причина в этом:
Цена: 10, сумма: 20
Цена: 13, сумма: 29
после того как возьмете 3 пункта контакт, останется 9 свободных очков, а цена требует 10
вторая формула высчитывает и получает цифру 9
раз обе формулы округляют вверх, тогда они разные цифры выходит считают
что высчитывает первая формула, она говорит игроку сколько надо потратить очков
что высчитывает вторая формула, она тратит эти очки
первая говорит надо потратить 10
вторая говорит пошла ты нафик, я потрачу 9
но если у игрока нету 10 очков, его не допустят ко второй формуле
возьмите ровно 29 очков и пробуйте взять на них 4 контактного урона, но не сразу все 4, а по одному, взяли 1, нажали галочку, взяли 2, нажали галочку, взяли 3, нажали галочку, 4 взять не получится
причина в этом:
Цена: 10, сумма: 20
Цена: 13, сумма: 29
после того как возьмете 3 пункта контакт, останется 9 свободных очков, а цена требует 10