- można na ifach, ale będzie to pewnie nieeleganckie, bo nie przewidzisz ile ktoś będzie miał na maksa punktów.
- bardziej eleganckie rozwiązanie byłoby użycie jakiejś funkcji matematycznej. może użyć logarytmu?
np.
var POINTS_CONSTANT = 2; // tu dajesz jakas liczbe
(...)
var factor = Math.log(points + 2);
player.points += factor * POINTS_CONSTANT;
(gdzie factor to twoja zmienna wspolczynnik a points to aktualne punkty, oczywiście. Tam jest `+2` z tego względu, że funkcja Math.log dla zera daje minus nieskończoność, a dla jedynki daje 0, więc chodzi o to, żeby nawet jak masz zero punktów był wynik dodatni (mogło by być pewnie +1.5 )
całość można zaokrąglić:
player.points += Math.floor(factor * POINTS_CONSTANT);
ew. pokombinować z wartościami danymi do Math.log, np. points * 4 + 2, albo odjąć/dodać potem od wyniku jakąś liczbę itp. trzeba by potweakować.
No to tyle, chociaż sprawdź na ile ci to będzie działać (ale i tak pewnie będziesz musiał poeksperymentować), tak na szybko spróbowałem coś wykminić (sam do tej pory na ifach robiłem takie rzeczy, co w sumie nie jest zbyt eleganckie), w każdym razie funkcja logarytmu wygląda zachęcająco:
https://upload.wikimedia.org/wikipedia/comm...h_ticks.svg.png