# 老鼠吃奶酪Android **Repository Path**: curriculum-design/mice_eat_cheese_android ## Basic Information - **Project Name**: 老鼠吃奶酪Android - **Description**: 老鼠吃奶酪小游戏(GUI Android版) - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 1 - **Created**: 2019-12-29 - **Last Updated**: 2025-07-30 ## Categories & Tags **Categories**: games **Tags**: None ## README 老鼠吃奶酪游戏 ============ 系统功能 ---------- 本游戏的主题为“老鼠吃奶酪”。游戏开始时,游戏会自动生成地图,地图旁边会显示老鼠的生命与等级。游戏开始后,玩家通过屏幕上的上下左右键控制方向,操纵老鼠在地图上移动,寻找奶酪并躲避猫和陷阱。 系统功能设计 --------- * 生成地图:根据玩家选择的难易程度,系统将自动生成相应的地图 * 生成猫/陷阱:在地图中随机生成猫和陷阱 * 显示生命:显示老鼠的生命 * 改变生命:当老鼠被猫或陷阱捕获时,生命减少 * 返回初始位置:或当老鼠被猫或陷阱捕获,则会返回初始位置 * 显示分数:显示老鼠吃到的奶酪数量 * 改变分数:当老鼠吃到奶酪时,分数增加 * 移动老鼠:玩家通过屏幕上的按键控制老鼠的移动 * 结束游戏:当玩家达到要求的奶酪数或者老鼠生命值到达0时,游戏结束 ![p1](/mdimg/p1.PNG) UML图 ---------- ![uml](/mdimg/uml.PNG) 地图生成模块详解 ----------- 逻辑流程如下: * 地图初始化。把地图的二维数组的所有的值赋予`-` * 生成地图的路径。随机生成老鼠的出身点,然后用for循环,分别随机每一块生成固定数量的奶酪的位置,然后取初始地点四个方向符合不和别的路径相重复的格且能够移动且不是奶酪的格子放入`result`的动态数组并返回数组,随机选择`result`中的一个方向的放入`path`中的,并给二维数组赋值`0`,并给终点值赋予`n`(放置奶酪)。 * 生成地图之外的部分。检索地图上的剩余部分是否等于`-`,并给这些格一半赋予致死物体,一半赋予剩下的部分,且致死物体中一半赋予猫`m`,一半赋予陷阱`x`,在剩余物体中,一般赋予墙`1`,一般赋予空地`0`和奶酪`n`。