Я пытаюсь создать систему расчета точек с помощью javascript, но проблема в математической части. Я сохранил на сервере номер точки, и на основе этого числа я хочу решить уровень. Извините за мой плохой английский, я не могу объяснить очень хорошо: D. Я хочу что-то вроде: level 1 need 0 points level 2 needs 100 points level 3 needs 240 points level 4 needs 420 points level 5 needs 640 points
и т. Д. Мне нужна математическая функция для вычисления каждого уровня с ней. Что-то, что, если я знаю уровень для вычисления необходимых точек, и если я знаю только точки для расчета уровня.Система подсчета очков Javascript
ответ
Для создания серии вы предоставили использование:
function getPoints(level)
{
return 20*(level-1)*(level+3);
}
Чтобы получить уровень с точки немного сложнее, вам нужно инвертировать приведенную выше формулу, используя квадратичную формулу, а затем принять положительное решение:
function getLevel(points)
{
var level = -1 + Math.sqrt(4 + points/20);
// Round down to nearest level
return Math.floor(level);
}
Кроме того, в будущем попробуйте и уточните свои вопросы. Как вы видите, три человека (по крайней мере) неправильно поняли ваш вопрос - было неясно, что вы установили уровни математической серии.
мммм, у меня есть смутное представление о том, что вы собираетесь
var levels = [0, 100, 240, 420, 640];
function GetLevel(points)
{
for(i == levels.length - 1; i >= 0; i--)
{
if (points >= levels[i]) return i + 1;
}
}
указывает на следующий уровень
function PointsToNextLevel(currentPoints)
{
var level = GetLevel(currentPoints);
if (level == levels.length) return 0;
return levels[level - 1] - currentPoints;
}
var levels = {
1: 0,
2: 100,
3: 240,
4: 420,
5: 640}
function get_level(points){
for (level in levels){
if (points < levels[level]){
return level - 1;
}
}
}
Это просто принимает уровни хэш и itenerates через уровни , пока точки не будут выше минимального уровня, возвратив последний уровень.
Хотя это работает для цифр, я думаю, что OP хочет общего решения для серии, которую он дал. См. Мой ответ ниже – pheelicks
эта функция должна решить вашу проблему и, мне кажется, очень легко понять:
function getLevel(points)
{
var levels = [0,100, 240, 420, 640];
var maxLevel = levels.length;
var i;
for (i=0;i<maxLevel;i++) {
if (levels[i]>points) return i;
}
return maxLevel;
}
- 1. Система подсчета очков и массивы
- 2. Функции подсчета очков JavaScript
- 3. Система подсчета очков не работает AS3
- 4. Система подсчета очков в PHP без базы данных
- 5. Результаты подсчета очков
- 6. Libgdx: результаты подсчета очков
- 7. Закрепление системы подсчета очков
- 8. Нужная функция подсчета очков
- 9. SVM - функция подсчета очков
- 10. подсчета очков в квадранте
- 11. Система ранжирования очков
- 12. подсчета костюм очков для бриджа
- 13. SSAS - поддержка для подсчета очков
- 14. Haskell - список вероятностей подсчета очков
- 15. Использование счетчика для подсчета очков
- 16. Система автоматического подсчета C++
- 17. Система подсчета голосов Java
- 18. Использование переключателей для подсчета очков в викторине
- 19. Попытка подсчета очков с помощью Easeljs в javascript
- 20. скоринг система подсчета несколько раз
- 21. Получить позицию пользователя после подсчета очков
- 22. MySQL: оптимизировать запрос для подсчета очков
- 23. Каков наилучший способ хранения/подсчета очков пользователей?
- 24. Настройка соответствующего подсчета очков в Elasticsearch
- 25. Метеоритные пакеты для ранжирования/голосования/подсчета очков
- 26. Критерий подсчета очков не работает правильно
- 27. Python sklearn классификация: настроить функцию подсчета очков
- 28. Запрос MySql для подсчета очков каждого пользователя
- 29. Как вы вычисляете базовую систему подсчета очков?
- 30. Передача строк mysql алгоритму подсчета очков?
Спасибо, я попробую, я искал что-то подобное, спасибо Хантеру и спасибо всем, кто пробовал! И извините за непонятный вопрос - я не очень хорошо знаю английский :( – coolboycsaba
Упс! Я имею в виду pheelicks: D – coolboycsaba
Спасибо, что заметили серийную часть чисел, я не понял вопроса таким образом. – CodeJoust