Как мне заставить программу бросить предыдущее количество кубиков, просто нажав enter?

#python-3.x

#python-3.x

Вопрос:

Это то, что у меня есть до сих пор. Это отлично работает, если вы хотите каждый раз бросать разное количество кубиков, но если вы играете в игру, подобную Sequence Dice, это может стать довольно неприятным и монотонным. Я хочу, чтобы она могла бросить предыдущее количество кубиков, когда вы нажимаете enter, без необходимости вводить новое значение.

 from random import randint

run = False
dice_num = 0
roll_num = 0
total_sum = 0

print()
print("Welcome to dice roller!")
print()
print("To quit, just type stop at any time.")

while run == False:
    print()
    num_of = input("How many dice do you want to roll? ")
    print()

    if num_of.lower() == "stop":
        print()
        print("Thank you!")
        print(f"You rolled a total of {dice_num} dice in {roll_num} rolls.")
        print()
        break

    try:
        act_num = int(num_of)
        print("You rolled...")
        roll_num  = 1
        while act_num > 0:
            dice_out = randint(1, 6)
            print(dice_out)
            act_num -= 1
            dice_num  = 1
            total_sum  = dice_out
        print()
        print(f"Sum: {total_sum}")
        total_sum = 0
    except ValueError:
        print("Try Again.")


run == False```
  

Ответ №1:

Я думаю, это должно выполнить свою работу. Я создал переменную previous_dice_num в конце каждого цикла, значение num_of которой будет сохранено previous_dice_num . Затем, всякий раз, когда пользователь ничего не вводит, значение previous_dice_num будет использоваться как num_of .

 from random import randint

run = False
dice_num = 0
roll_num = 0
total_sum = 0
previous_dice_num = 0

print()
print("Welcome to dice roller!")
print()
print("To quit, just type stop at any time.")

while run == False:
    print()
    num_of = input("How many dice do you want to roll? ")
    print()
    if num_of == '':
        num_of = previous_dice_num


    if num_of.lower() == "stop":
        print()
        print("Thank you!")
        print(f"You rolled a total of {dice_num} dice in {roll_num} rolls.")
        print()
        break

    try:
        act_num = int(num_of)
        print("You rolled...")
        roll_num  = 1
        while act_num > 0:
            dice_out = randint(1, 6)
            print(dice_out)
            act_num -= 1
            dice_num  = 1
            total_sum  = dice_out
        print()
        print(f"Sum: {total_sum}")
        total_sum = 0
    except ValueError:
        print("Try Again.")

    previous_dice_num = num_of