我正在尝试重新创建Monty Hall游戏(here is a description of the game) 在这里,它会要求用户输入一个数字(我的代码要求'输入一个随机种子')开始,如果用户没有输入一个数字,游戏将显示一个错误消息。如果用户输入了一个数字,游戏就开始了。然后游戏会问用户他们想测试游戏多少次,所以如果用户说5次,那么游戏会重复5次,一旦完成所有5个游戏,它会再次问用户。但是,如果用户输入一个字符串/非数字,比如“5”,那么游戏应该要求用户输入一个数字,直到用户最终输入一个数字。你知道吗
以下是输入的示例
25
5
exit
这里是输出应该是什么
Enter Random Seed:
Welcome to Monty Hall Analysis
Enter 'exit' to quit.
How many tests should we run?
Game 1
Doors: ['G', 'C', 'G']
Player Selects Door 1
Monty Selects Door 3
Player should switch to win.
Game 2
Doors: ['C', 'G', 'G']
Player Selects Door 1
Monty Selects Door 2
Player should stay to win.
Game 3
Doors: ['G', 'C', 'G']
Player Selects Door 2
Monty Selects Door 1
Player should stay to win.
Game 4
Doors: ['C', 'G', 'G']
Player Selects Door 1
Monty Selects Door 2
Player should stay to win.
Game 5
Doors: ['G', 'C', 'G']
Player Selects Door 3
Monty Selects Door 1
Player should switch to win.
Stay Won 60.0% of the time.
Switch Won 40.0% of the time.
How many tests should we run?
Thank you for using this program.
以下是我的程序输出的内容
Enter Random Seed:
Welcome to Monty Hall Analysis
Enter 'exit' to quit.
How many tests should we run?
Please enter a number:
How many tests should we run?
Traceback (most recent call last):
File "monty.py", line 16, in <module>
tests = int(input('How many tests should we run?\n'))
EOFError: EOF when reading a line
这是我的代码
import random
G=0
G2=0
C=0
try:
random_seed = input('Enter Random Seed:\n')
random_seed = int(random_seed)
print('Welcome to Monty Hall Analysis')
exit = input("Enter 'exit' to quit.\n")
while True:
if exit == 'exit':
print('Thank you for using this program.')
break
try:
tests = int(input('How many tests should we run?\n'))
tests = int(tests)
except ValueError:
print('Please enter a number:')
continue
select_door = ['G', 'C', 'G']
random.shuffle(select_door)
player_door = int(input('Doors: '+str(select_door)))
if random.shuffle(select_door) == "['G', 'C', 'G']":
G = 1
C = 2
G2 = 3
elif random.shuffle(select_door) == "['C', 'G', 'G']":
C = 1
G = 2
G2 = 3
elif random.shuffle(select_door) == "['G', 'G', 'C']":
G = 1
G2 = 2
C = 3
if player_door == C:
print('Player should stay to win')
else:
print('Player should switch to win')
doors = [1 , 2 , 3]
random.choice(doors)
print('Player Selects Door: ', player_door)
print('Monty Selects Door: ', random.choice(doors))
except ValueError:
print('Seed is not a number!')
抱歉,如果我的代码是真的很糟糕或如果它没有意义。我是新来的程序员。还有,我只是想让实际的游戏工作之前,我可以在%停留赢得和%开关赢得部分工作。你知道吗
你把这段代码放在一个无限循环中,这就是为什么每次都调用它
我的解决办法是:
我添加了
for _ in range(tests)
,主游戏引擎应该运行tests
次。你知道吗我还实现了
Stay won ... of the time
我给你的代码应该做的工作,但是,它会崩溃,如果用户选择一个门不是其中一个提供的门。为了避免这种情况,可以使用
if player_door not in doors
检查用户选择是否是所提供的选择之一。你知道吗相关问题 更多 >
编程相关推荐