Метод jQuery Рошамбо не заботился о расшифровке URL
http://snipplr.com/view/26662/get-url-parameters-with-jquery-- Улучшено /
Просто добавлена эта возможность и при добавлении в оператор return
return decodeURIComponent(results[1].replace(/\+/g, " ")) || 0;
Теперь вы можете найти обновленный gist:
$.urlParam = function(name){ var results = new RegExp('[\\?&]' + name + '=([^]*)').exec(window.location.href); if (!results) { return 0; } return decodeURIComponent(results[1].replace(/\+/g, " ")) || 0; }
Без рекурсии и с системой оценки:
from random import randint as ri
score_mapping = {
0 : None,
1 : [(1, 4),],
2 : [(1, 6),],
3 : [(1, 8),],
4 : [(1,10),],
5 : [(1, 6), (1, 6)],
6 : [(1, 8), (1, 8)],
7 : [(1, 10), (1, 10)],
8 : [(1, 8), (1, 8), (1, 8)],
9 : [(1, 10), (1, 10), (1, 10)],
10 : [(1, 8), (1, 10), (1, 10), (1, 10)],
}
def action_roll_script(score, roll_again_at=20):
return_value = 0
while True:
value = ri(1, 20)
print(f'score={score} rolled value={value}')
if score == 0:
return_value += value
else:
return_value += sum(ri(vf, vt) for (vf, vt) in score_mapping[score])
if value != roll_again_at:
break
return return_value
print(action_roll_script(0))
Возможный выход:
score=10 rolled value=20
score=10 rolled value=5
38
Попробуйте использовать рекурсию:
Я считаю, что вы ищете что-то вроде этого:
from random import randint as ri
MAX_DICE_NUMBER = 20
def roll_dice():
attempt = ri(1, MAX_DICE_NUMBER)
if attempt == MAX_DICE_NUMBER:
return attempt + roll_dice()
else:
return attempt
def action_roll_script(attribute):
print("You got a " + attribute + " roll of " + str(roll_dice()) + "!")
action_roll_script('power')
>>> You got a power roll of 16!
Я не понимал, зачем вам нужен счет, хотя ...
Но этот фрагмент все еще может быть полезен :)