Количество камней несовместимо, игра ним
Проблема в том, что количество камней, которые берет компьютер, отличается от количества, отображаемого на экране. Я знаю, это потому, что функция повторяется дважды. Но я не могу найти способ сохранить сгенерированное случайное число и использовать это число для печати И вычитания [Также я знаю, что это можно сделать без использования функций, но это необходимо]
Вот код:
import random
stones = random.randint(15, 30)
turn = 0
while stones > 0:
if turn == 0:
def player_announce():
print('There are', stones, 'stones. How many would you like?', end=' ')
def invalid_entry():
print('Enter a number from 1-3.')
player_announce()
player_stones = int(input(''))
if player_stones > 3 or player_stones < 1:
invalid_entry()
else:
stones = stones - player_stones
turn = 1
else:
def draw_stones():
computer_stones = random.randint(1, 3)
return computer_stones
print('There are', stones, 'stones. The computer takes', draw_stones())
stones -= draw_stones()
turn = 0
if turn == 0:
print('The computer beats the player!')
else:
print('The player beats the computer!')
1 ответ
Простой ответ — вызвать draw_stones один раз и сохранить результат:
computers_stones = draw_stones()
print('There are', stones, 'stones. The computer takes', computers_stones)
stones -= computers_stones
Как только вы заработаете, я советую вам попросить кого-нибудь прочитать все это для вас, есть много вещей, которые вы могли бы сделать лучше!