如何在石头剪刀布Python游戏中使用while语句?
如何用while循环实现石头剪刀布的重复对局功能
现有一段仅支持单次对局的石头剪刀布Python代码,要实现可重复游戏的功能,只需用while循环包裹核心对局逻辑,并添加继续游戏的判断环节即可。
修改后的完整代码
print("来玩石头剪刀布吧!") print("""代替石头输入: r 代替布输入: p 代替剪刀输入: s\n""") play_again = True while play_again: user1 = input("用户1 -> ") user2 = input("用户2 -> ") print() if user1=="r": if user2=="r": print("叮!平局") elif user2=="p": print("用户1", "\033[031m""输了""\033[0m", "用户2", "\033[032m""赢了""\033[0m", "用布包住了石头") elif user2=="s": print("用户2", "\033[031m""输了""\033[0m", "用户1", "\033[032m""赢了""\033[0m", "用石头砸碎了剪刀") else: print("\033[030m""无效输入""\033[0m") elif user1=="p": if user2=="r": print("用户2", "\033[031m""输了""\033[0m", "用户1", "\033[032m""赢了""\033[0m", "用布包住了石头") elif user2=="p": print("咔擦!平局") elif user2=="s": print("用户1", "\033[031m""输了""\033[0m", "用户2", "\033[032m""赢了""\033[0m", "用剪刀剪碎了布") else: print("\033[030m""无效输入""\033[0m") elif user1=="s": if user2=="r": print("用户1", "\033[031m""输了""\033[0m", "用户2", "\033[032m""赢了""\033[0m", "用石头砸碎了剪刀") elif user2=="p": print("用户2", "\033[031m""输了""\033[0m", "用户1", "\033[032m""赢了""\033[0m", "用剪刀剪碎了布") elif user2=="s": print("唰!平局") else: print("\033[030m""无效输入""\033[0m") # 询问是否继续游戏 choice = input("\n要不要再来一局?(输入y继续,其他退出) ").strip().lower() if choice != 'y': play_again = False print("游戏结束!")
关键修改点
- 用
while play_again:包裹核心的输入、胜负判断逻辑,通过play_again布尔变量控制循环的开始与结束 - 在每轮对局结束后添加用户选择环节,根据输入决定是否开启下一轮游戏
- 保留原有的胜负判定和颜色输出逻辑,仅调整循环结构实现重复游戏功能
内容的提问来源于stack exchange,提问作者Jatin Verma
相关产品推荐
相关产品推荐

