You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修改猜数字游戏代码,直至玩家或电脑猜对才停止?

修改猜数字游戏:直到玩家或电脑猜对才停止

咱们先捋清楚原代码的小问题:你原来的逻辑是玩家先一直猜直到自己猜对,之后电脑只猜一次,这完全不是「谁先猜对谁赢」的玩法呀!咱们得把流程改成玩家和电脑轮流猜测,每次猜完给提示,只要其中一方命中目标数字,游戏就立刻结束,宣布胜者。

下面给你两种修改方案,你可以按需选择:

方案一:智能电脑版(电脑用二分法猜,胜率很高)

这个版本里电脑会用二分法缩小猜测范围,猜得非常快,可玩性更强:

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("感谢游玩!😊")

关键修改点说明

  1. 删掉了作弊的print(the_number):原代码一开始就把目标数字打出来,这游戏还有啥意思呀,必须删掉!
  2. 改成轮流猜的循环逻辑:用while True无限循环,每轮先玩家猜,再电脑猜,任意一方猜对就break结束游戏,完美符合你的需求。
  3. 优化了游戏体验:加了回合提示、获胜表情,调整了提示语,玩起来更顺畅。

内容的提问来源于stack exchange,提问作者Flo Chelsea

火山引擎 最新活动