# 推箱子面向对象版本 **Repository Path**: gzbit_lihong/pushbox ## Basic Information - **Project Name**: 推箱子面向对象版本 - **Description**: 推箱子面向对象版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-03-20 - **Last Updated**: 2023-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README N个箱子 N块墙 1个小人 钥匙6把 地图 有位置信息的 -X -Y 可以移动的 人 可以移动的 箱子 -移动 方法/动作/行为 推箱子游戏规则: 有5种元素 墙 箱子 目标位置 小人 地图 --抽象 以上四种元素放在地图上都有位置 里面有可移动元素 人 对象 类 --可以移动的 --有位置信息的 箱子 对象 类 --可以移动的 --有位置信息的 墙 对象 类 --不可移动的 --有位置信息的 钥匙 对象 类 --不可移动的 --有位置信息的 地图 对象 类 - 宽 - 高 - 绘制地图 - 判断有没有通关 游戏控制类 - 加载关卡 - 撤消 - 重新开始 移动规则: 箱子、小人 可以移动 小人移动规则 上下左右移动 有墙的方向不能移动 移动的方向上有两个箱子并排不能移动 移动的方向上有一个箱子加墙并排不能移动 箱子移动规则 移动的方向上有一个箱子堵着不能移动 移动的方向上遇到墙不能移动 通关规则 箱子全部移动指定目标上通关 1.画地图 2.写各元素规则代码 3.通关判断 面向对象分析 每种元素可以抽象为一个类 类之间再次抽象,比如:小人和箱子都可以移动,抽象出移动对象类 运行思想 游戏在地图上进行 控制小人移动 小人移动时,要判断小人能否移动 小人自己判断自己是否能移动 小人尝试向左移动 小人问地图:我的左边有什么? 地图回答:啥都没有 小人判断自己能向左动->移动 地图看看有没有通关 小人尝试向上移动 小人问地图:我的上面有什么 地图说:上面有箱子 小人问箱子:箱子箱子,你能向上移动吗? 箱子问地图:地图地图,我的上面有什么? 地图说:你的上面啥都没有 箱子回小人:我能向上移动 小人推着箱子向上走了一步 地图看看有没有通关 小人尝试向上移动 小人问地图:我的上面有什么 地图说:上面有箱子 小人问箱子:箱子箱子,你的上面有什么? 箱子问地图:地图地图,我的上面有什么? 地图说:你上面有墙 箱子给小人说:上面有墙,动不了了 小人移动失败 地图看看有没有通关