30 分钟
Python 进阶

项目:文字冒险游戏(上)

就用面向对象写个文字冒险游戏的框架。

  • 设计游戏类结构
  • 实现房间和玩家系统
  • 实现基本移动和查看

项目设计

我们用OOP设计一个文字冒险游戏:

Room 类:房间有名称、描述、出口、物品

Player 类:玩家有位置、背包

Game 类:游戏主循环,处理命令

Room 和 Player 类

示例代码(可运行)
预测输出
class Box:
    def __init__(self):
        self.items = []
b = Box()
b.items.append("key")
print(len(b.items))
填空题填写空白处的代码
class Player: def __init__(self, start): self. = start
选择题

房间出口用什么数据结构?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

内层函数(或 lambda)捕获的是外层变量本身,而不是定义那一刻的值;循环里定义的多个函数,循环结束后调用往往都拿到最后的值。解决办法是用默认参数 f(x=x) 立即绑定,或用工厂函数包一层。配合 LEGB 作用域顺序(局部→外层→全局→内建)理解,90% 的作用域谜题都能解开。

挑战任务

游戏框架

简单+50 XP

实现Room和Player类,创建3个房间并移动。

游戏框架
2 个测试用例

课后作业

更多房间

中等+20 XP

创建5个房间的地图,支持双向移动。

更多房间
1 个测试用例