Вот полный рабочий код, который учитывает неверную сумму, введенную в качестве ввода.Сумма двух бросков костей не может быть меньше 2 или больше 13. Поэтому проверка этого условия делает ваш код немного более устойчивым.Вам нужно инициализировать sumofRoll = 0
перед входом в цикл while
, так как это необходимо для первого входа в цикл while.Значение 0 является безопасным значением, поскольку мы исключили введенное пользователем значение 0
в качестве действительной суммы.
from random import randrange
print ("This program rolls two 6-sided dice until their sum is a given target value.")
input_sum = int(input("Enter the target sum to roll for:"))
def main():
sumofRoll = 0
if input_sum < 2 or input_sum > 13:
print ("Enter a valid sum of dices")
return
while sumofRoll != input_sum:
dice1 = randrange (1,7)
dice2 = randrange (1,7)
sumofRoll = dice1 + dice2
output = "Roll: {} and {}, sum is {}".format (dice1,dice2,sumofRoll)
print (output)
if sumofRoll == input_sum:
print ("All done!!")
main()
This program rolls two 6-sided dice until their sum is a given target value.
Enter the target sum to roll for:10
Roll: 3 and 5, sum is 8
Roll: 6 and 6, sum is 12
Roll: 5 and 1, sum is 6
Roll: 2 and 5, sum is 7
Roll: 6 and 6, sum is 12
Roll: 3 and 5, sum is 8
Roll: 1 and 2, sum is 3
Roll: 6 and 4, sum is 10
All done!!