Я пишу игру «Угадай номер». Вначале компьютер выбирает случайное число в диапазоне 0-99, и игрок догадывается, сколько это стоит. Как только игрок угадал номер, игра снова начинается.Случайное число не обновляется каждый раз, когда я вызываю функцию
Игрок может начать игру в любое время, используя две кнопки: «Новая игра Диапазон 0-100» и
«Новая игра Диапазон 0-1000.»Вот ссылка на онлайн-редактор, в котором можно просматривать и редактировать файл:
http://www.codeskulptor.org/#user41_1sYMUy5rDi_0.py
в настоящем время, число, что COMPU ter выбирается всегда, но как только игра будет работать правильно, она будет удалена.
В любом случае проблема заключается в том, что когда пользователь вводит номер, который выбрал компьютер, игра перезапускается, но тот же номер выбирается компьютером в последний раз. Но если пользователь нажимает на кнопку новой игры, на компьютере выбирается другой номер, что является правильным.
Логическая ошибка возникает здесь:
num_range = random.randrange(0,100)
# helper function to start and restart the game
def new_game():
print "Guess the number!"
global secret_number
global num_range
secret_number = num_range
print secret_number
Если удалить
secret_number = num_range
линия от функции new_game() и заменить его
num_range = random.randrange (0.100)
каждый раз, когда пользователь правильно угадывает число, новая игра начинается с различным числом в том же диапазоне, что является правильным, но мне нужна переменный, так что работают две кнопки. Вы знаете, как использовать переменную num_range, чтобы каждый раз, когда игра запускается автоматически после того, как пользователь угадал номер, секретный номер отличается от последнего раза?
Вот вся программа:
import simplegui
import random
import math
num_range = random.randrange(0,100)
# helper function to start and restart the game
def new_game():
print "Guess the number!"
global secret_number
global num_range
secret_number = num_range
print secret_number
#event handlers for control panel
def range100():
# button that changes the range to [0,100) and starts a new game
global num_range
num_range = random.randrange(0,100)
global secret_number
secret_number = num_range
print "The range is 0-100"
new_game()
def range1000():
# button that changes the range to [0,1000) and starts a new game
global secret_number
global num_range
num_range = random.randrange(0, 1000)
secret_number = num_range
print "The range is 0-1000"
new_game()
def input_guess(guess):
# main game logic
g = int(guess)
# remove this when you add your code
print "Guess was", g
if g <secret_number :
print "Higer"
elif g > secret_number:
print "Lower"
else:
print "Correct"
print "Starting a new game..."
print ""
new_game()
# create frame
frame = simplegui.create_frame("Guess the number",200, 200)
frame.add_input("Enter your guess", input_guess, 200)
frame.add_button("New game. Range is 0-100", range100, 200)
frame.add_button("New game. Range is 0-1000", range1000, 200)
# register event handlers for control elements and start frame
# call new_game
new_game()
Вы определяете случайное число только при первом запуске программы. –
Кто-то должен опубликовать ссылку: https://xkcd.com/221/ –
* «Случайное число не обновляется каждый раз, когда я вызываю функцию» * - ... вы ** никогда не просите об этом **. – jonrsharpe