猜数字游戏
你将构建什么
一个猜数字游戏:程序随机生成一个 1 到 100 之间的数字,玩家反复猜测,程序提示“太大”或“太小”,直到猜中为止。
学习目标
- 理解变量存储和更新随机目标数字
- 用条件判断(if/else)比较玩家输入与目标
- 用循环(while)让玩家反复猜测直到猜中
- 学会用伪代码描述程序逻辑,为后续真实语言打好基础
前置要求
- 了解变量是什么以及如何赋值
- 了解 if/else 条件判断的基本概念
- 了解 while 循环的基本概念
步骤
- 1
生成随机目标数字
首先需要一个变量来存放“答案”。用伪代码声明一个变量
target,赋值为 1 到 100 之间的随机整数。这一步是游戏的核心——玩家要猜的就是这个数字。代码// 伪代码:生成 1 到 100 之间的随机整数 target = random(1, 100) print("我已经想好了一个 1 到 100 之间的数字,开始猜吧!")预期结果
程序运行后,target 被赋一个随机值,并打印提示语。
提示
大多数语言都有 random(a, b) 这样的函数,返回 a 到 b 之间的随机数。
- 2
读取玩家第一次猜测
声明一个变量
guess来存放玩家的输入。用input()读取玩家输入并转换为数字。同时声明一个变量attempts = 0来记录猜测次数。代码// 读取玩家输入 attempts = 0 guess = input("请输入你的猜测:") attempts = attempts + 1预期结果
程序等待玩家输入一个数字,attempts 变为 1。
提示
别忘了把输入从字符串转换成数字,否则无法比较大小。
- 3
用循环和条件判断给出反馈
用 while 循环让玩家反复猜测。在循环体内用 if/else 比较 guess 和 target:如果相等就恭喜并退出;如果 guess < target 就提示“太小了”;否则提示“太大了”。每次循环都要重新读取 guess 并增加 attempts。
代码while guess != target: if guess < target: print("太小了,再大一点!") else: print("太大了,再小一点!") guess = input("再猜一次:") attempts = attempts + 1 print("恭喜你猜中了!你一共用了 " + attempts + " 次。")预期结果
玩家每次猜测后都会得到“太大”或“太小”的提示,猜中后程序打印恭喜信息和总次数。
提示
循环条件是 guess != target——只要没猜中就继续。猜中后循环自动结束。
- 4
测试边界情况
测试几个边界情况:猜 1(最小值)、猜 100(最大值)、猜中 target 本身。确认程序在每种情况下都给出正确提示,不会卡死或报错。
预期结果
所有边界情况都能正确响应,程序正常结束。
提示
如果玩家输入的不是数字怎么办?进阶可以加入输入校验,但本项目先不处理。
自己动手试试
// 伪代码骨架——补全循环体
target ← random(1, 100)
guess ← 0
attempts ← 0
// TODO: while guess ≠ target 循环
// - 比较 guess 与 target
// - 打印提示
// - 读取新猜测
// - 增加 attempts
print("一共用了", attempts, "次。")target ← random(1, 100)
guess ← read_input()
attempts ← 1
while guess ≠ target:
if guess < target:
print("太小了!")
else:
print("太大了!")
guess ← read_input()
attempts ← attempts + 1
print("恭喜你猜中了!一共用了", attempts, "次。")你学到了什么
你掌握了编程的三大基石:用变量存储状态、用条件判断做分支、用循环实现重复。猜数字游戏把这三个概念串成了一个完整、可运行的程序——这就是编程的本质。
相关资源
相关练习
- 变量练习
测验你对变量的理解。
相关工具
- JSON 格式化工具
格式化 JSON 数据,理解数据结构。
相关参考文档
- JavaScript Math
Math.random 和 Math.floor 随机数生成参考。
相关术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
相关错误
用大白话解释常见错误——什么意思、为什么发生、如何修复。