Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PyFirst

第七章:动手创造

恭喜!你已经掌握了 Python 的基础工具:变量、条件判断、循环、列表和函数。现在是时候把这些"乐高积木"拼成一件完整的作品了。

本章我们将从零开始,一步一步打造一个 文字冒险游戏——你在终端里探索神秘城堡、收集道具、解开谜题!

准备好了吗?先运行下面的代码,感受一下最终成品的效果。

Python
Loading editor...

7.1 项目拆解:从零开始搭积木

上一节的完整游戏看起来很复杂?别担心,我们一块块来拆解。每个零件你其实都学过了:

游戏零件用到的 Python 知识
房间地图**列表** 和 **字典**(上面用字典,稍后详解)
玩家移动**条件判断**(if/else)
游戏主循环**while 循环**
道具系统**列表**(inventory)
上锁的门**条件判断** + **列表查找**
各模块封装**函数**

7.2 第一步:搭一个最简单的地图

先不要管道具和锁。从一个最简单的"能走动的房间"开始:

Python
Loading editor...

💡 字典(dict) 是 Python 的另一个重要数据结构。它和列表的区别:列表用数字编号(索引),字典用名字(键)来索引。比如 map_data["门外"] 通过名字拿到对应的值。


7.3 第二步:加入道具收集系统

Python
Loading editor...

7.4 第三步:加上锁的门

Python
Loading editor...

7.5 完整游戏结构回顾

`` 🏰 文字冒险游戏 ├── 游戏数据层 │ ├── rooms(房间地图) │ ├── inventory(背包列表) │ └── game_over(是否结束) ├── 游戏逻辑层 │ ├── show_room() — 展示房间信息 │ ├── process_command() — 处理玩家指令 │ └── move / pick / use — 具体动作 └── 游戏循环层 └── while not game_over ``

三层架构的好处:想加新房间?只改 rooms 字典。想加新指令?只改 process_command 函数。互不影响。


7.6 动手练习

练习 1:在城堡游戏里添加一个新房间「地下室」,里面藏着一件稀有道具「夜光宝石」。

>

练习 2:给游戏添加一个 "查看" 指令,让玩家可以查看当前房间的详细信息。

>

练习 3(挑战):给游戏添加一个怪物系统——某些房间有怪物,玩家需要先收集「宝剑」才能通过。

Python
Loading editor...

7.7 你的下一步

print("Hello, World!") 到你刚刚创造出一个完整的文字冒险游戏——这不到 7 章的距离,你已经完成了从"编程小白"到"能动手创造"的飞跃。

接下来你可以:

方向你可以……
🎮 **继续完善游戏**加更多房间、更多道具、NPC(非玩家角色)对话系统
🔢 **挑战算法题**去 LeetCode、牛客网刷刷 Python 简单题
🖥️ **做个小工具**写一个批量重命名文件的脚本,或者一个计算器
🕸️ **学 Web 开发**用 Flask 或 FastAPI 把你的游戏做成网页版
🤖 **探索 AI**用 Python 调用 OpenAI 等大模型 API,做个聊天机器人

编程的世界是无限广阔的,而你已经拿到了最重要的钥匙:用代码创造东西的能力


7.8 趣味编程结语

你在趣味编程中学会了具体内容
✅ 变量给数据贴上标签,随时取用
✅ 条件判断`if/elif/else`,让程序做选择
✅ 循环`for/while`,自动化重复任务
✅ 列表收纳大量数据,增删改查一手搞定
✅ 函数封装代码,打造可复用的工具箱
✅ 综合项目将以上所有技能融合,创造出完整应用

🎉 恭喜你完成了「趣味编程」全部内容! 接下来可以继续选学「人工智能」模块,在 Python 的世界里继续探索。


本章内容基于 [Python 官方教程](https://docs.python.org/3/tutorial/) 改编,遵循 PSF License 许可。