如何修改猜数字游戏代码,直至玩家或电脑猜对才停止?
修改猜数字游戏:直到玩家或电脑猜对才停止
咱们先捋清楚原代码的小问题:你原来的逻辑是玩家先一直猜直到自己猜对,之后电脑只猜一次,这完全不是「谁先猜对谁赢」的玩法呀!咱们得把流程改成玩家和电脑轮流猜测,每次猜完给提示,只要其中一方命中目标数字,游戏就立刻结束,宣布胜者。
下面给你两种修改方案,你可以按需选择:
方案一:智能电脑版(电脑用二分法猜,胜率很高)
这个版本里电脑会用二分法缩小猜测范围,猜得非常快,可玩性更强:
import random # 生成1-100之间的随机目标数字(想改回1-4直接改这里的范围就行) the_number = random.randint(1, 100) player_guess = 0 # 初始化电脑猜测的范围,让它猜得更聪明 min_num, max_num = 1, 100 print("欢迎来玩猜数字游戏!目标数字在1-100之间,玩家和电脑轮流猜,先猜对的获胜!") while True: # 玩家的回合 print("\n--- 玩家回合 ---") player_guess = int(input("请输入你的猜测:")) if player_guess > the_number: print("猜大啦,下次猜小一点!") elif player_guess < the_number: print("猜小啦,下次猜大一点!") else: print(f"游戏结束!目标数字是{the_number},玩家获胜!🎉") break # 电脑的回合 print("\n--- 电脑回合 ---") # 用二分法选中间数,快速缩小范围 computer_guess = (min_num + max_num) // 2 print(f"电脑猜了:{computer_guess}") if computer_guess > the_number: print("电脑猜大了,下次会往小了猜!") max_num = computer_guess - 1 elif computer_guess < the_number: print("电脑猜小了,下次会往大了猜!") min_num = computer_guess + 1 else: print(f"游戏结束!目标数字是{the_number},电脑获胜!🤖") break print("感谢游玩!😊")
方案二:简单随机版(电脑每次随机猜)
如果想要更「随缘」的电脑对手,就用这个版本,电脑每次随机选数字:
import random the_number = random.randint(1, 100) player_guess = 0 computer_guess = 0 print("欢迎来玩猜数字游戏!玩家和电脑轮流猜1-100之间的数字,先猜对的赢!") while True: # 玩家回合 print("\n玩家回合:") player_guess = int(input("请输入你的猜测:")) if player_guess == the_number: print(f"恭喜!你猜对了,目标数字是{the_number},玩家获胜!🎉") break elif player_guess > the_number: print("猜大啦,再小一点!") else: print("猜小啦,再大一点!") # 电脑回合 print("\n电脑回合:") computer_guess = random.randint(1, 100) print(f"电脑猜了:{computer_guess}") if computer_guess == the_number: print(f"电脑猜对了,目标数字是{the_number},电脑获胜!🤖") break elif computer_guess > the_number: print("电脑猜大了!") else: print("电脑猜小了!") print("感谢游玩!😊")
关键修改点说明
- 删掉了作弊的
print(the_number):原代码一开始就把目标数字打出来,这游戏还有啥意思呀,必须删掉! - 改成轮流猜的循环逻辑:用
while True无限循环,每轮先玩家猜,再电脑猜,任意一方猜对就break结束游戏,完美符合你的需求。 - 优化了游戏体验:加了回合提示、获胜表情,调整了提示语,玩起来更顺畅。
内容的提问来源于stack exchange,提问作者Flo Chelsea




