🎮 小游戏制作教程(15 篇)

手把手、分步骤,用 Python / C / C++ 从零做出能玩的小游戏,每个语言从简单到难:猜数字、贪吃蛇、扫雷、2048、井字棋……

🐍 Python 小游戏(5 篇)

Python 小游戏①:猜数字
2026-08-04 · 8 分钟

Python 小游戏①:猜数字

猜数字是几乎所有程序员写过的第一个小游戏:电脑随机想一个 1 到 100 之间的数,你猜,它只告诉你"大了"还是"小了"

Python游戏
Python 小游戏②:石头剪刀布
2026-08-05 · 7 分钟

Python 小游戏②:石头剪刀布

石头剪刀布(Paper-Scissors-Rock)规则人人皆知,但亲手用代码实现一遍,你会对"如何把现实规则翻译成程序

Python游戏
Python 小游戏③:猜单词 Hangman
2026-08-06 · 9 分钟

Python 小游戏③:猜单词 Hangman

猜单词(Hangman)是经典的文字游戏:程序藏起一个单词,只显示字母个数,你一个个猜字母,猜对就亮出位置,猜错就少一次

Python游戏
Python 小游戏④:井字棋
2026-08-07 · 10 分钟

Python 小游戏④:井字棋

井字棋(Tic-Tac-Toe)的棋盘只有 3×3,规则简单到一句话:谁先连成一线谁赢。但把它写成程序,你要处理输入校验

Python游戏
Python 小游戏⑤:贪吃蛇(pygame)
2026-08-08 · 12 分钟

Python 小游戏⑤:贪吃蛇(pygame)

前四篇都在终端里玩文字游戏,这篇用 pygame 做经典贪吃蛇,首次接触"游戏主循环":每帧重复"处理输入 → 更新状态

Python游戏

⚙️ C 小游戏(5 篇)

C 语言小游戏①:猜数字
2026-08-04 · 6 分钟

C 语言小游戏①:猜数字

学完 C 语言的基础语法,很多人会陷入"什么都会、却什么都不会做"的尴尬。破解方法只有一个:动手做小项目。本文的猜数字是

C游戏
C 语言小游戏②:数学速算问答
2026-08-05 · 7 分钟

C 语言小游戏②:数学速算问答

猜数字只能练"比较",这一篇我们做一个真正会随机出题的小游戏:数学速算问答。程序自动生成加减乘除四则运算,你口算作答、答

C游戏
C 语言小游戏③:文本迷宫
2026-08-06 · 8 分钟

C 语言小游戏③:文本迷宫

前两篇我们一直在"猜"和"算",这一篇开始有真正的空间感。文本迷宫把地图存进二维数组,玩家用 WASD 控制 @ 穿行,

C游戏
C 语言小游戏④:2048 控制台版
2026-08-07 · 10 分钟

C 语言小游戏④:2048 控制台版

2048 是近几年最成功的休闲小游戏:规则一句话讲完,实现却大有讲究。它的核心是"滑动 + 合并"算法:每次移动所有方块

C游戏
C 语言小游戏⑤:贪吃蛇(控制台)
2026-08-08 · 9 分钟

C 语言小游戏⑤:贪吃蛇(控制台)

本系列收官之作,挑战经典中的经典——贪吃蛇。蛇由一串坐标组成,吃到食物变长,撞墙或咬到自己就结束。控制台版本采用"每按一

C游戏

🔷 C++ 小游戏(5 篇)

C++ 小游戏①:猜数字(面向对象版)
2026-08-04 · 8 分钟

C++ 小游戏①:猜数字(面向对象版)

猜数字是经典入门游戏:程序随机生成 1~100 的秘密数字,不断猜测,程序提示"太大"或"太小",直到猜中。本文用面向对

C++游戏
C++ 小游戏②:井字棋(带 AI)
2026-08-05 · 10 分钟

C++ 小游戏②:井字棋(带 AI)

井字棋规则简单,却是练习"棋盘建模"和"AI 决策"的绝佳素材。你和电脑轮流落子,电脑带策略 AI——能赢就赢,赢不了就

C++游戏
C++ 小游戏③:扫雷(控制台)
2026-08-06 · 12 分钟

C++ 小游戏③:扫雷(控制台)

扫雷是训练"数据结构思维"的好游戏:9×9 棋盘随机埋 10 颗雷,翻开格子,数字表示周围 8 格有几颗雷。本文用二维

C++游戏
C++ 小游戏⑤:文本 RPG
2026-08-08 · 12 分钟

C++ 小游戏⑤:文本 RPG

系列最后一篇:一个"剧情向"的文本 RPG,没有画面,全靠文字和想象力。玩家冒险、战斗、捡装备吃药水,把类、std::v

C++游戏

🚀 语言新特性教程(15 篇)

C++11/14/17/20/23、Python 3.9→3.13、JavaScript ES6+ 与 C 标准演进:每个版本带来了什么、怎么写、值不值得升级。

🔷 C++ 新特性(5 篇)

🐍 Python 新特性(5 篇)

📜 JavaScript 新特性(3 篇)

⚙️ C 新特性(2 篇)

全部文章(69 篇)

按编程语言与主题分类,每组从简单到难循序渐进,支持搜索。

🐍 Python(19 篇)

Python 入门指南
2026-07-28 · 8 分钟

Python 入门指南

Python 是当今最流行的编程语言之一:语法简洁、生态丰富,无论是写脚本、做数据分析、开发 Web 还是学习算法,它都

Python入门
Python 数据类型与变量详解
2026-06-15 · 9 分钟

Python 数据类型与变量详解

变量是程序存放数据的"盒子",数据类型则决定了盒子里能装什么、能做什么运算。Python 是动态类型语言,写起来很自由,

Python
Python 字符串处理全攻略
2026-07-06 · 8 分钟

Python 字符串处理全攻略

无论是爬虫清洗数据、日志分析还是命令行工具,字符串处理都是 Python 开发者的日常。Python 的 str 类型自

Python
Python 列表与字典实战
2026-07-13 · 9 分钟

Python 列表与字典实战

列表(list)和字典(dict)是 Python 中使用频率最高的两种容器:前者处理"有序的一串东西",后者处理"键到

Python
Python 条件判断与循环
2026-06-22 · 8 分钟

Python 条件判断与循环

程序的核心能力之一就是"根据条件做选择、按规则反复执行"。Python 用 if / elif / else 表达分支,

Python
Python 函数进阶:参数与作用域
2026-06-29 · 9 分钟

Python 函数进阶:参数与作用域

函数是组织代码的基本单元。会写 def 只是入门,真正拉开差距的是对参数机制和作用域规则的理解:默认参数、可变参数、关键

Python
Python 模块与 pip 包管理
2026-07-23 · 8 分钟

Python 模块与 pip 包管理

"不要重复造轮子"是 Python 社区的信条。标准库提供开箱即用的能力,几十万个第三方包通过 pip 一键安装。会用模

Python
Python 文件与目录操作
2026-08-02 · 9 分钟

Python 文件与目录操作

读写文件、遍历目录、批量重命名……这些"脏活累活"正是 Python 脚本的拿手好戏。本文围绕 open() 与 pat

Python
Python 异常处理与调试
2026-07-28 · 8 分钟

Python 异常处理与调试

程序出错不可怕,可怕的是直接崩溃。异常处理让程序"优雅地失败":该报错时报错,该兜底时兜底。配合调试技巧,你就能从"看到

Python
Python JSON 与 CSV 数据处理
2026-06-18 · 8 分钟

Python JSON 与 CSV 数据处理

JSON 和 CSV 是日常工作中最常见的两种数据格式:API 接口返回 JSON,表格数据导出 CSV。Python

Python
Python 日期与时间处理
2026-07-06 · 8 分钟

Python 日期与时间处理

日志分析、订单统计、定时任务……几乎每个程序都要跟日期时间打交道。Python 的 datetime 模块功能强大但细节

Python
Python 面向对象编程
2026-07-18 · 10 分钟

Python 面向对象编程

面向对象编程(OOP)把数据和操作数据的方法打包成"对象",让代码更贴近现实世界的建模方式。Python 的类机制灵活而

Python
Python 迭代器与生成器
2026-07-11 · 9 分钟

Python 迭代器与生成器

处理大数据时,最怕一次性把所有数据装进内存。迭代器与生成器就是 Python 的"懒加载"方案:按需产生数据,边算边用。

Python
Python 装饰器详解
2026-07-17 · 10 分钟

Python 装饰器详解

装饰器是 Python 最优雅也最"劝退"的特性之一:它能在不改动原函数代码的前提下,给函数附加日志、计时、缓存等能力。

Python
Python 网络请求与 API 调用
2026-06-24 · 9 分钟

Python 网络请求与 API 调用

现代应用几乎都离不开网络:调第三方 API、抓取公开数据、上传文件。Python 的 requests 库把 HTTP

Python
Python 爬虫入门实战
2026-06-30 · 10 分钟

Python 爬虫入门实战

爬虫(网络抓取)是 Python 最受欢迎的应用场景之一:把网页上的公开信息批量提取并保存为结构化数据。本文用一个真实例

Python
Python 数据库操作入门
2026-07-28 · 10 分钟

Python 数据库操作入门

程序跑起来容易,数据持久化才是关键。从零配置的 SQLite 到生产级的 MySQL,Python 的数据库接口高度统一

Python
Python 并发编程:线程与协程
2026-07-23 · 11 分钟

Python 并发编程:线程与协程

程序变慢时,第一反应往往是"让它同时干更多活"。Python 提供了线程、进程、协程三套并发方案,选对方案比写出代码更重

Python
Python 练手项目:从想法到作品
2026-08-02 · 12 分钟

Python 练手项目:从想法到作品

语法学了一堆,真正拉开差距的是"把想法做成作品"的能力。本文以一个命令行待办清单为例,带你走完选题、搭骨架、拆模块、加参

Python

⚙️ C(10 篇)

C 语言入门:第一个程序
2026-06-16 · 6 分钟

C 语言入门:第一个程序

1972 年,Dennis Ritchie 在贝尔实验室创造了 C 语言。半个多世纪过去,它依然是操作系统、嵌入式设备和

C
C 数据类型与变量
2026-06-20 · 7 分钟

C 数据类型与变量

程序本质上是对数据的加工。C 语言要求每个数据都有明确的类型——是整数、小数还是字符,决定了它占多少内存、能存多大范围。

C
C 运算符与表达式
2026-06-24 · 7 分钟

C 运算符与表达式

运算符是 C 语言表达计算的"动词"。加减乘除、比较判断、逻辑与或、甚至直接操作二进制位——掌握了它们,你才能写出真正有

C
C 条件与循环
2026-06-28 · 7 分钟

C 条件与循环

顺序执行的程序毫无威力,真正厉害的程序会判断和重复:成绩够不够及格、文件读没读完、任务要不要再来一次。本文带你掌握 C

C
C 数组与字符串
2026-07-06 · 8 分钟

C 数组与字符串

处理 10 个成绩可以写 10 个变量,处理 10000 个呢?数组让"同一类型的批量数据"可以用一个名字管理。而 C

C
C 函数与递归
2026-07-02 · 7 分钟

C 函数与递归

把一段逻辑写进函数,就能重复调用、按需组合,这是 C 程序组织代码的基本方式。而递归——函数调用自己——则是解决"同构子

C
C 指针入门
2026-07-10 · 8 分钟

C 指针入门

指针是 C 语言最强大的特性,也是新手劝退率最高的知识点。其实它只做一件事:保存另一个变量的内存地址。把地址想成"门牌号

C
C 结构体与联合体
2026-07-21 · 7 分钟

C 结构体与联合体

一个学生有姓名、年龄、成绩,一个点有 x、y 坐标——这些"一组相关数据"用几个独立变量管理会非常凌乱。结构体把它们打包

C
C 内存管理:malloc 与 free
2026-07-15 · 8 分钟

C 内存管理:malloc 与 free

数组的长度在编译时就定死了,但程序运行时往往不知道要存多少数据。这时候就需要动态内存分配:运行时按需向系统申请内存,用完

C
C 文件操作
2026-07-28 · 8 分钟

C 文件操作

程序跑完就消失的数据没有意义,把结果存进文件、从文件读入配置才是常态。C 用 FILE * 完成文件读写,流程永远是四步

C

🔷 C++(10 篇)

C++ 入门:从 C 到 C++
2026-06-15 · 8 分钟

C++ 入门:从 C 到 C++

C++ 诞生于 1983 年,是 C 语言"加上类"的产物,但远不止如此:它同时支持面向过程、面向对象和泛型编程,是操作

C++
C++ 类与对象
2026-06-20 · 9 分钟

C++ 类与对象

类是 C++ 面向对象编程的基石:它把数据和对数据的操作打包在一起,并通过访问控制保护内部状态。理解类与对象,就等于理解

C++
C++ 继承与多态
2026-06-26 · 10 分钟

C++ 继承与多态

继承让新类复用已有类的代码,多态让同一段代码对不同对象表现出不同行为。这两件事合在一起,是面向对象"开闭原则"(对扩展开

C++
C++ 引用与指针
2026-07-20 · 9 分钟

C++ 引用与指针

指针是 C 的招牌,引用是 C++ 对指针的"安全升级"。两者都能间接访问变量,但语义大不相同:指针是"存地址的变量",

C++
C++ 智能指针
2026-07-29 · 9 分钟

C++ 智能指针

裸指针 + new/delete 是 C++ 内存泄漏和悬垂指针的头号来源:C++11 引入的智能指针用 RAII 思想

C++
C++ STL 容器:vector
2026-07-02 · 7 分钟

C++ STL 容器:vector

std::vector 是 C++ 中最常用的容器:一块连续内存上的动态数组,支持 O(1) 随机访问和尾部插入,还能自

C++
C++ STL 容器:map 与 set
2026-07-08 · 8 分钟

C++ STL 容器:map 与 set

如果说 vector 是"有序的列表",那 map 就是"键值查找表",set 是"自动去重的集合"。它们内部用红黑树实

C++
C++ string 字符串处理
2026-07-14 · 7 分钟

C++ string 字符串处理

字符串处理是编程中最频繁的操作之一。C 的 char[] + strcpy/strlen 既啰嗦又容易越界;C++ 的

C++
C++ 模板入门
2026-07-24 · 8 分钟

C++ 模板入门

模板是 C++ 泛型编程的核心:写一份代码,让它适用于任意类型。STL 的 vector<int>、vect

C++
C++11/14/17 新特性
2026-08-02 · 10 分钟

C++11/14/17 新特性

2011 年发布的 C++11 被公认为"第二门语言":auto、lambda、智能指针、移动语义等特性彻底改变了写 C

C++

📜 JavaScript(6 篇)

JavaScript 基础语法速览
2026-06-18 · 6 分钟

JavaScript 基础语法速览

JavaScript 是 Web 的"通用语言":浏览器里它驱动页面交互,Node.js 让它跑在服务器端。本文用最短的

JavaScript
JavaScript 数组高阶方法
2026-07-15 · 8 分钟

JavaScript 数组高阶方法

处理数据是前端每天的工作,数组高阶方法就是那把"瑞士军刀"。学会 map、filter、reduce,几行声明式代码就能

JavaScript
JavaScript 闭包与作用域
2026-07-27 · 9 分钟

JavaScript 闭包与作用域

闭包(Closure)是 JS 面试必考、实战必用的知识点,也是"一看就懂、一写就错"的典型。本文从作用域讲起,推导闭包

JavaScript
理解 JavaScript 异步编程
2026-07-22 · 9 分钟

理解 JavaScript 异步编程

"JS 是单线程的,却能处理大量并发"--理解异步是进阶前端的第一道坎。本文从事件循环讲起,带你彻底搞懂 Promise

JavaScriptWeb
JavaScript DOM 操作实战
2026-06-26 · 8 分钟

JavaScript DOM 操作实战

DOM(Document Object Model)把 HTML 文档变成一棵 JavaScript 可以操作的"对象树

JavaScript
JavaScript 事件机制详解
2026-07-05 · 9 分钟

JavaScript 事件机制详解

交互是前端的灵魂,事件是交互的载体。理解"事件从哪来、往哪去、如何拦截",是写出健壮交互代码的分水岭。本文拆解事件传播的

JavaScript

🌿 Git(6 篇)

Git 常用命令速查手册
2026-07-25 · 6 分钟

Git 常用命令速查手册

Git 是每个程序员必须掌握的工具。本文不追求面面俱到,而是把日常开发中 出现频率最高 的命令整理成速查表,配合真实场景

Git工具
Git 分支管理策略
2026-07-10 · 8 分钟

Git 分支管理策略

分支是 Git 最强大的特性,但"能用分支"和"会用分支"是两回事。没有策略的仓库很快就会变成乱麻:功能分支长期不合并、

Git
Git rebase 与 merge 怎么选
2026-07-18 · 8 分钟

Git rebase 与 merge 怎么选

"merge 还是 rebase?"几乎是每个 Git 使用者都会纠结的问题。两者都能把分支的改动合到一起,但哲学完全不

Git
Git stash 暂存技巧
2026-07-25 · 6 分钟

Git stash 暂存技巧

正在改代码时突然来了个线上 bug,要立刻切分支修复——但手头的改动还没写完,不想提交又不敢丢。这时候 git stas

Git
Git Hooks 自动化
2026-08-01 · 9 分钟

Git Hooks 自动化

"又有人把调试代码提交上来了""提交信息乱写一气""CI 在合并前才发现格式错误"——根源都是质量检查全靠自觉。Git

Git

🧮 算法(6 篇)

数据结构与算法入门
2026-07-18 · 7 分钟

数据结构与算法入门

数据结构是程序的骨架。本文用最直观的方式介绍三种基础结构--数组、链表、栈,重点对比它们的内存模型与时间复杂度。

算法数据结构
排序算法全家桶:冒泡/快排/归并
2026-06-20 · 9 分钟

排序算法全家桶:冒泡/快排/归并

排序是算法世界的地基:几乎所有面试、几乎所有数据处理都绕不开它。本文把最常考的三种排序——冒泡、快排、归并——一次性讲透

算法
递归与分治思想
2026-07-18 · 7 分钟

递归与分治思想

很多初学者觉得递归难,是因为试图"一步步跟踪"它的执行过程。正确姿势恰恰相反:递归要求你信任函数本身。本文帮你建立递归的

算法
二分查找:面试必会
2026-06-28 · 7 分钟

二分查找:面试必会

二分查找是面试中出现频率最高的算法之一:代码不到十行,却藏着无数边界陷阱。本文从最朴素的版本讲起,带你写出一份"一次通过

算法
哈希表:空间换时间
2026-07-08 · 8 分钟

哈希表:空间换时间

如果只能选一种数据结构陪你去面试,那一定是哈希表。它把"查找"从 O(n) 降到平均 O(1),代价只是多花一点内存。理

算法
动态规划入门
2026-07-30 · 10 分钟

动态规划入门

动态规划(Dynamic Programming,DP)是面试中区分度最高的算法题型,也是很多人的噩梦。其实它的核心只有

算法

🌐 网络(6 篇)

HTTP 协议基础
2026-07-15 · 8 分钟

HTTP 协议基础

你在浏览器输入网址回车,背后发生了什么?答案就是 HTTP--Web 世界的通用语言。本文用 curl 实战拆解请求与响

网络Web
TCP 与 UDP 协议对比
2026-06-26 · 8 分钟

TCP 与 UDP 协议对比

传输层有两大主角:TCP 和 UDP。几乎所有互联网应用都建立在这两个协议之上——网页用 TCP,视频通话用 UDP。它

网络
DNS 解析原理详解
2026-06-18 · 9 分钟

DNS 解析原理详解

打开浏览器输入网址,几毫秒内页面就加载出来了。这背后有一个默默工作的系统——DNS(Domain Name System

网络
RESTful API 设计指南
2026-07-15 · 9 分钟

RESTful API 设计指南

前后端分离成为主流后,API 就是前后端之间的"合同"。设计得好,团队协作顺畅、调用方省心;设计得差,文档越写越长,谁用

网络
WebSocket 实时通信
2026-07-24 · 8 分钟

WebSocket 实时通信

聊天、行情推送、在线协作……这些功能都要求服务器主动推送数据,而传统 HTTP 是"一问一答"的。WebSocket 在

网络
HTTPS 与 TLS 握手过程
2026-07-05 · 10 分钟

HTTPS 与 TLS 握手过程

地址栏里那把"小锁"背后,是一套精密的密码学流程——TLS 握手。它让浏览器和服务器在公开网络上安全地协商出加密密钥,从

网络

🛠️ 工具(6 篇)

Linux 常用命令速查
2026-07-10 · 7 分钟

Linux 常用命令速查

无论你是开发者、运维还是刚接触服务器的学生,Linux 命令都是绕不开的基本功。本文不追求面面俱到,而是把日常最高频的命

工具
Vim 编辑器入门
2026-07-15 · 7 分钟

Vim 编辑器入门

Vim 是 Linux 服务器上标配的文本编辑器,几乎每个程序员的第一次都是"进去就出不来了"。其实它没那么可怕:只要记

工具
Markdown 写作指南
2026-07-29 · 6 分钟

Markdown 写作指南

README、技术博客、接口文档、会议纪要……如今几乎所有技术写作都离不开 Markdown。它用极简的符号标记格式,让

工具
正则表达式入门
2026-07-10 · 5 分钟

正则表达式入门

正则表达式(Regex)是用一段"模式字符串"在文本中查找、提取、替换内容的技术。学会它,处理日志、校验输入、批量替换的

工具Python
程序调试技巧大全
2026-08-02 · 8 分钟

程序调试技巧大全

写代码只占开发时间的一小半,剩下的大半时间都在和 Bug 搏斗。调试不是"碰运气",而是一门有方法论的技术:先复现、再二

工具
Docker 容器入门
2026-07-22 · 8 分钟

Docker 容器入门

为什么别人的项目"在我电脑上跑不起来"?Docker 给出的答案是:把应用连同它的运行环境一起打包,走到哪里都是同一套环

工具