python - 制作石头剪刀布游戏
问题描述
我正在制作一个石头剪刀布游戏。
下面的代码有效,但是缺少两个关键的东西,我真的很想知道如何实现它:
如果出现平局,玩家必须能够再次选择。所以 break 语句必须执行,但是返回 while 循环并再次播放需要什么?
比赛结束时也是如此。玩家必须能够再次玩。我认为它与上面的代码相同。
答案将非常有帮助,因为它确实可以帮助我更多地理解 while 循环。
def rps():
play = True
player1 = input('Player1: rock, paper of scissors? ')
player2 = input('Player2: rock, paper of scissors? ')
while play:
if player1 == 'rock' and player2 == 'rock': # deze methode werkt niet om opnieuw weer te beginnen
print ('Tie! Pick again')
break
elif player1 == 'rock' and player2 == 'paper':
print('Player 2 won')
break
elif player1 == 'rock' and player2 == 'scissors':
print ('Speler 1 won')
break
elif player1 == 'paper' and player2 == 'rock':
print('Speler 1 won')
break
elif player1 == 'paper' and player2 == 'paper':
print('Tie! Pick again')
continue
elif player1 == 'paper' and player2 == 'scissors':
print('Speler 2 won')
break
elif player1 == 'scissors' and player2 == 'rock':
print('Speler 2 won')
break
elif player1 == 'scissors' and player2 == 'paper':
print('Speler 1 won')
break
elif player1 == 'scissors' and player2 == 'scissors':
print('Tie! Pick again')
解决方案
将游戏循环包裹在第二个 while 循环中。不要打破关系。游戏循环的输入发生在游戏循环中。退出或播放的输入发生并在游戏循环之前进行评估。
while True:
print("Welcome to Rock, Paper, Scissors.")
gameplay = input("(P)lay or (Q)uit?")
if (gameplay == 'Q'):
break
else:
while True:
player1 = input('Player1: rock, paper of scissors? ')
player2 = input('Player2: rock, paper of scissors? ')
{Gameplay Logic}
推荐阅读
- asp.net-core - Ant Blazor Modal 使用模板
- r - 如何使 geom_jitter() 在 R 中分组 ggplot2 条形图中的各个条形图中显示点?
- ajax - 为什么我的 Active Search 设置在 Django 应用程序中不起作用?
- r - 按每组的计数添加列
- arrays - 没有空终止符的字符串
- python - 在每次迭代的日志文件中附加输入 json
- sql - 如果条件满足,则将列的值替换为不同行的同一列 bu 的值
- sharepoint-online - SharePoint Online 文档库列类型与其内容类型的列类型不匹配
- python - 绘制饼图不显示所有数据
- python-3.x - 如何让 Python 的语音识别模块接受我的 YouTube 搜索查询