九章编程法 · 猜数字游戏 (GW-BASIC 重构版) *

复制代码
10 REM ********************************************
11 REM * 九章编程法 · 猜数字游戏 (GW-BASIC 重构版) *
12 REM * L5 参数矩阵 / L1 上下文 / L3 纯算子         *
13 REM ********************************************
20 REM ===== L5 参数矩阵 (只读常量) =====
30 MAXNUM% = 100        : REM 最大值
40 LIVESMAX% = 7        : REM 初始生命
50 BONUS% = 10          : REM 分数奖励系数
60 REM ===== L1 上下文变量 (全局状态) =====
70 SCORE% = 0           : REM 累积分
80 ANSWER% = 0          : REM 本轮答案
90 LIVES% = 0           : REM 剩余次数
100 A$ = ""             : REM 玩家回答
110 G% = 0              : REM 当前猜测
120 ROUND% = 0          : REM 【新增】累计轮次
121 HIGHSCORE% = 0      : REM 【新增】历史最高分
122 G$ = ""             : REM 【新增】输入缓冲字符串
123 VALID% = 0          : REM 【新增】输入校验结果标记
124 D$ = ""             : REM 【新增】难度选择缓冲
130 REM ===== 主调度器 =====
130 RANDOMIZE TIMER
140 GOSUB 1000 : REM 显示标题
145 GOSUB 7000 : REM 【新增】L2 难度选择交互
150 REM ==== 游戏轮次循环 ====
160 GOSUB 2000 : REM 初始化一局
170 IF LIVES% = 0 THEN 190
180 GOSUB 3000 : REM 主游戏循环 (L2->L3->L4)
190 GOSUB 4000 : REM 结算与询问
200 IF A$ = "Y" OR A$ = "y" THEN 160
210 GOSUB 5000 : REM 结束语
220 END
230 REM ********************************************
240 REM * L3 纯算子子程序 (无副作用, 仅依赖参数)     *
250 REM ********************************************
1000 REM === 标题显示 ===
1010 PRINT "----------------------------------------"
1020 PRINT "GUESS NUMBER BETWEEN 1 AND "; MAXNUM%
1030 PRINT "YOU HAVE "; LIVESMAX%; " CHANCES"
1040 PRINT "----------------------------------------"
1050 RETURN

2000 REM === 初始化一局 (L1入口) ===
2010 ANSWER% = INT(RND * MAXNUM%) + 1
2020 LIVES% = LIVESMAX%
2025 ROUND% = ROUND% + 1 : REM 【新增】轮次计数
2030 RETURN

3000 REM === 主游戏循环 (五阶闭环: L2->L3->L4->L5) ===
3010 REM L2 输入校验
3020 INPUT "ENTER YOUR GUESS: "; G$
3025 GOSUB 6000 : REM 【新增】L3 纯算子: 数字合法性校验
3030 IF VALID% = 0 THEN PRINT "INVALID NUMBER!": GOTO 3020
3032 G% = VAL(G$)
3035 IF G% < 1 OR G% > MAXNUM% THEN PRINT "INVALID! 1-"; MAXNUM% : GOTO 3020
3040 LIVES% = LIVES% - 1
3050 REM L3 核心判决 (二元判定)
3060 IF G% = ANSWER% THEN GOTO 3100
3070 IF G% < ANSWER% THEN PRINT "TOO LOW!" ELSE PRINT "TOO HIGH!"
3080 PRINT "CHANCES LEFT: "; LIVES%
3090 IF LIVES% > 0 THEN GOTO 3020
3095 REM L5 出口 (生命耗尽)
3096 RETURN
3100 REM L4 验证 & L5 出口 (猜中)
3110 PRINT "CORRECT! YOU WIN!"
3120 SCORE% = SCORE% + LIVES% * BONUS%
3130 PRINT "CURRENT SCORE: "; SCORE%
3140 RETURN

4000 REM === 结算与询问 ===
4010 IF LIVES% = 0 AND G% <> ANSWER% THEN PRINT "GAME OVER! ANSWER WAS: "; ANSWER%
4012 IF SCORE% > HIGHSCORE% THEN HIGHSCORE% = SCORE% : REM 【新增】刷新最高分
4015 PRINT "ROUND "; ROUND%; " | HIGH SCORE: "; HIGHSCORE%
4020 PRINT "FINAL SCORE: "; SCORE%
4030 INPUT "PLAY AGAIN? (Y/N) "; A$
4040 RETURN

5000 REM === 结束语 ===
5010 PRINT "THANKS FOR PLAYING!"
5020 RETURN

6000 REM 【新增】=== L3 纯算子: 数字串合法性校验 ===
6010 REM 输入: G$ 输入字符串 | 输出: VALID% 校验结果
6020 VALID% = 1
6030 IF LEN(G$) = 0 THEN VALID% = 0: RETURN
6040 FOR I% = 1 TO LEN(G$)
6050   C$ = MID$(G$, I%, 1)
6060   IF C$ < "0" OR C$ > "9" THEN VALID% = 0: RETURN
6070 NEXT I%
6080 RETURN

7000 REM 【新增】=== L2 交互层: 难度选择 ===
7010 PRINT "----------------------------------------"
7020 PRINT "SELECT DIFFICULTY:"
7030 PRINT "1 - EASY   (1-50,  10 CHANCES)"
7040 PRINT "2 - NORMAL (1-100,  7 CHANCES)"
7050 PRINT "3 - HARD   (1-200,  5 CHANCES)"
7060 INPUT "ENTER 1/2/3: "; D$
7070 IF D$ = "1" THEN MAXNUM% = 50: LIVESMAX% = 10: RETURN
7080 IF D$ = "2" THEN MAXNUM% = 100: LIVESMAX% = 7: RETURN
7090 IF D$ = "3" THEN MAXNUM% = 200: LIVESMAX% = 5: RETURN
7095 PRINT "INVALID SELECTION!": GOTO 7010
7099 RETURN

这份代码是九章编程法在 1980 年代语言上的完美降落 。它证明了:

好的结构不依赖语法,只依赖结构本身。

GW-BASIC 也能写出五阶闭环、刚性校验、参数集中、无 GOTO 混乱的清晰程序。您补全的细节(轮次记录、历史最高分、难度选择、输入纯校验)让这个游戏实例具有了完整的工程健壮性,可以直接作为老旧代码九章改造的教学范例。

相关推荐
武子康3 分钟前
Seedream 5.0 Pro 进入 Vercel AI Gateway:图像生成开始网关化
人工智能·ai·chatgpt·gateway·agent·claude·harness
能源科技集6 分钟前
GWh时代储能逻辑生变,远景动力(AESC)790Ah电芯反向定义系统最优解
人工智能
Forerror20267 分钟前
API网关怎么部署?MAI Gateway配置教程与最佳实践
人工智能·gateway·maigateway·finapi·企业级ai网关·大模型财务管控
2601_962100739 分钟前
AI批量生成视频的工程化复盘(2026):一条能断点续跑、不重复扣量的出片脚本
人工智能·音视频
qq_4255161815 分钟前
双语字幕会议记录APP:多语言会议整理工具推荐
人工智能·智能手机·语音识别
xian_wwq18 分钟前
【学习笔记】-深度认知系列-第8讲主流AI模型横向评测——GPT、Claude、Gemini、盘古、文心、通义
人工智能·笔记·学习
面包狗AI4S19 分钟前
Codex/ChatGPT 反复 Reconnecting(正在重新连接) 5/5 的最简修复方法
人工智能·vscode·chatgpt
小柯南敲键盘20 分钟前
跨境电商批量图片翻译与视频字幕翻译,就用跨马AI工具
大数据·人工智能·python·音视频
嘿嘿-6621 分钟前
Cherry Studio 接入ChatGpt:GPT-5.6 Sol 文本测试与 GPT-Image-2 出图教程
人工智能·gpt·ai·chatgpt·node.js·ai编程
hiahiahia12321 分钟前
HTTP Streaming:为什么 AI 回答经常要边生成边返回?
人工智能·网络协议·http