
无人机救援游戏
我和搭档 Ilyane Haida 一起,在 12x12 的网格上编写了一个救援游戏。无人机要找到幸存者并把他们送到医院,同时避开风暴和建筑,而电量一直在消耗。
你可以直接在浏览器里玩。这个小组件实际运行的是下方的 Python 脚本(未经修改,实时获取),借助 Pyodide(编译为 WebAssembly 的 CPython),无需安装任何东西。移动指令输入在网格下方出现的输入框中,回答期间它始终可见。游戏界面为英文。
规则简述。
- 网格为 12×12,列为
A到L,行为0到11。 - 网格上,
B是建筑,H是医院,S是幸存者,T是风暴,D是无人机。 - 每回合最多移动 3 架无人机,每次一格(含对角线),去接幸存者并把他们送到医院。
- 每次移动消耗 1 点电量(接幸存者另加 2 点);电量在医院充电。
- 风暴在移动时碰到任何处于活动状态的无人机,都会使其失能 2 个回合。
- 每送达一名幸存者到医院得 1 分。所有幸存者获救、所有无人机失能,或进行满 40 回合时,游戏结束。
- 玩的时候,先输入要移动的无人机编号(输入
f结束回合),再输入目的地,格式为“列 行”,例如C 5。
程序结构
程序分为五个部分:配置加载(JSON)、随机放置实体、显示函数、移动与规则引擎,以及计分。项目报告对每一部分都有详细说明。
