目录

嵌入式图形游戏开发 · EmbeddedGame

从 Proteus 仿真到 STM32 实物游戏机 一门面向大一学完 C 语言同学的开源嵌入式实践课 · 20 款图形游戏 × AI 自己 play game

License: MIT Docs: CC BY 4.0


这是什么?

EmbeddedGame 把 20 款经典图形游戏(贪吃蛇、2048、扫雷、坦克大战、吃豆人……)变成一门循序渐进的嵌入式课程设计。基于 STM32F103C8T6 + 1.8寸 131×161 SPI-LCD + 4 按键 统一硬件平台,先用 Proteus 仿真零成本入门,再进阶到真实 STM32 掌机实物(面包板 → 洞洞板 → 硬件验收)。

核心追问:软件游戏玩过很多,但当你亲手驱动一块 LCD 显示、把像素级游戏逻辑烧进单片机——你才真正”掌控”了硬件。而当你让这颗 72MHz、只有 20KB RAM 的芯片”自己玩起游戏”,你才真正理解嵌入式智能体的极限与可能


面向谁?需要什么基础?

受众 说明
大一刚学完 C 语言的学生 已掌握指针、结构体、数组,想动手玩硬件
自学转行的个人开发者 想补齐嵌入式开发与 STM32 入门
在职从业者 / 教师 想获得可复制的嵌入式课程设计模板

前置知识:C 语言基础(指针、结构体、数组、中断概念)。无需单片机经验——从俄罗斯方块范例开始手把手入门。

先修课程:《AI 时代的 C 语言课程》(LearningCwithAI)。本课程与《故事新编》MyTAOCP(软件算法)互为平行姊妹课——软件算法 vs 嵌入式硬件。


课程结构(三层)

① 基础库:硬件平台与工具链(STM32F103 + HAL + SPI-LCD + 按键 + Proteus/Keil)
② 主体:  B 类 20 题 Proteus 仿真课程设计(分 5 类,难度递进)
③ 进阶:  8 个游戏机实物(Proteus 仿真 → 实物,AI 自己 play game)

学习路径:俄罗斯方块(范例,完整代码解剖)→ B 类各题(Proteus 仿真)→ 8 游戏机(实物,AI 自己 play game)

核心命题:如何在 20KB RAM 里装下一个更先进的智能体——六项”内功”详见 docs/AI-play-game技术难点.md


20 款游戏题目(B 类,分 5 类)

类别 题目 难度
网格逻辑类 B01贪吃蛇 · B02 2048 · B03推箱子 · B04扫雷 · B05五子棋 ★★☆~★★★
射击动作类 B06太空侵略者 · B07打砖块 · B08飞机大战 · B09弹幕 · B10坦克大战 ★★★~★★★★
敏捷反应类 B11上100层 · B12 Flappy Bird · B13接苹果 · B14躲避障碍 · B15节奏大师 ★★☆~★★★★
策略光标类 B16黑白棋 · B17华容道 · B18点灯游戏 · B19迷宫 ★★★
扩展类 B20吃豆人 ★★★★

俄罗斯方块为学习范例(提供完整代码解剖),不作为可选题目。


硬件平台(统一)

组件 型号/规格 接口
MCU STM32F103C8T6 -
LCD 1.8寸 TFT(ST7735) SPI1(PB3/PB5)
按键 轻触开关 × 4 GPIO 外部中断(PC0/1/2/4)
定时器 TIM2 帧率控制
工具链 Keil5 MDK + STM32 HAL 库 + Proteus 8.9 -

目录结构

EmbeddedGame/
├── README.md              # 本文件(课程总览)
├── LICENSE                # 双许可证(代码 MIT + 文档 CC BY 4.0)
├── CONTRIBUTING.md        # 贡献指南
├── CODE_OF_CONDUCT.md     # 行为准则
├── course/                # 课程主体
│   ├── 00-课程总纲.md
│   ├── 01-硬件基线.md      # 俄罗斯方块范例完整解剖
│   ├── 02~06-各类五星教学样例
│   └── guided/            # 其余题目引导文档(8段式,不给完整代码)
├── examples/              # 学习范例:俄罗斯方块(完整工程解剖)
├── projects/              # B 类 20 题学生源码(p01~p20,Proteus 仿真)
├── packages/              # B 类 20 题成果包(设计报告 + 答辩 PPT)
├── hardware/              # 8 游戏机实物进阶篇(源码/ + 成果包/ + AI play game)
├── docs/                  # 课程规范:20题方案 / 硬件规范 / 评分标准 / BOM / AI难点
└── videos/                # 视频外链(教学视频 → B 站/CSDN)

快速开始

学习者(跟做第一个游戏)

  1. 阅读 course/01-硬件基线.md,理解 STM32 + LCD + 按键的硬件基座
  2. 打开 examples/俄罗斯方块/ 的 Keil 工程,编译烧录,跑通范例
  3. 跟随 course/02-*.md 做第一个五星教学样例(贪吃蛇),动手改造

教师(复用模板)

  1. 阅读 course/00-课程总纲.md 了解五星教学法 + 三层结构
  2. 以任意一轮五星教学样例为模板,替换成你的游戏与硬件
  3. 参考 docs/ 建立评价体系与硬件规范

教学法

五星教学法(聚焦问题 · 激活旧知 · 示证新知 · 应用新知 · 融会贯通)× 8 段式脚手架(项目概述 → 游戏原理 → 任务 → 要求 → 可控可观 → 工程伦理 → 上手 → 避坑)。

可控可观工程哲学:可控(寄存器/外设配置)= 掌控硬件每一根引脚;可观(LCD 显示/调试)= 让系统状态清晰可见。


开源协议

  • 代码:MIT License
  • 文档 / 教学设计:CC BY 4.0

详见 LICENSE


关于本项目

  • 发起人:朱宗晓(中南民族大学计算机学院·人工智能学院)
  • 主办:平行智能研习社
  • 姊妹课程MyTAOCP(软件算法篇)
  • 先修课程LearningCwithAI(C 语言)

从一块 LCD 点亮第一个像素开始,20 款游戏,陪你走完”仿真 → 面包板 → 洞洞板 → 掌机”的完整硬件之路。

关于

EmbeddedGame 把 20 款经典图形游戏(贪吃蛇、2048、扫雷、坦克大战、吃豆人……)变成一门循序渐进的嵌入式实践课。基于统一的 STM32F103C8T6 + 1.8 寸 SPI-LCD + 4 按键 硬件平台,先用 Proteus 仿真零成本入门,再进阶到真实 STM32 掌机实物(面包板 → 洞洞板 → 硬件验收)。 课程的核心命题是:如何在 20KB RAM 里装下一个更先进的

249.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号