网格仓库布局,角色(可以上下左右移动),可移动的箱子,目标位置(标记),自由空间
- 玩家的移动:上下左右移动
- 箱子的移动:
- 被玩家推着移动,向玩家移动的方向移动,一次移动一格
- 不能同时推两个箱子
- 箱子后面有墙壁就无法移动
- 游戏的目标 把所有箱子移动到指定位置
- 判断游戏结束
- 当实现游戏目标,自动判定为赢
- 设计程序判定出现某种情况后无法获胜
- 用户注册
选择游客模式或注册用户
- 游戏进度保存(10)
可以设计关卡选择,玩家移动次数计算保存
1.用户登录或选择游客模式后,游戏会直接进入关卡(高级要求有关卡选择界面),并正确显示地图,游戏还应显示关卡号和人物移动次数。
-
游戏应允许玩家在游戏过程中随时重启新游戏。(不是退出程序再重新运行。
-
重启新游戏时,游戏数据需要与新游戏一致。
3.多用户注册(15)
- 为游客和注册用户实现登录选择界面。
- 游客无需注册即可玩游戏,但没有保存游戏进度的功能。
- 用户登录界面包含注册页面,输入账户信息后即可登录。
- 程序退出并再次运行后,之前注册的用户仍然可以登录。
4.保存和加载游戏(15)
- 每个用户(游客除外)都可以选择加载自己之前的存档,存档为一个单独的文件,再次保存会覆盖之前的存档(覆盖原存档是基本要求,如果每个用户有多个存档位,则不会加分)。
- 从游戏开始界面,玩家可以选择加载自己最近的存档,存档中应包含棋盘状态和迄今为止的移动次数等信息。
- 每个用户的存档数据都是唯一的。
- 手动保存是基本要求,在定时或退出时自动保存可获得高级积分。
- 存档文件错误检查:如果存档在加载时格式或内容损坏,则不会加载损坏的存档,游戏仍会运行而不会崩溃。 (如果您的游戏能够检测出被他人修改过的存档,同时仍能保持存档数据的合法性,则可以获得高级积分。)
5.游戏具体执行(30)
- 推箱子:当玩家移动角色时,他们可以朝移动方向推任何箱子,只要箱子后面有空隙即可。箱子可以一直移动,直到撞到墙壁或另一个箱子。
- 按钮控制:界面必须包含上、下、左、右按钮,以方便玩家朝不同方向移动。
- 键盘控制:玩家朝不同方向移动(上、下、左、右)需要键盘控制。
- 游戏胜利:游戏的目标是将所有箱子推到指定的目标位置。一旦所有目标都被箱子覆盖,则显示胜利屏幕,表明谜题已成功解决。
- 游戏失败:如果游戏未胜利时无法移动箱子(例如,箱子被推到角落),则应显示游戏结束消息或重新开始关卡的选项。
6.GUI(10)
- 使用 JavaFX、Swing 或其他 Java 图形框架为游戏实现图形界面。
- 根据课程提供的演示完成代码即可获得本部分的分数。
- 独立创建 GUI 可计入高级分数。
- 如果您的程序需要输入命令行,则无法获得本任务的满分。
1.通往下一关的按钮(nextlevel)
2.撤销的操作
3.记录这个关卡尝试了多少次(Trail)
4.换箱子,人物皮肤
5.音乐(背景音乐,每次推箱子的音乐,按按钮的声音)
6.道具关卡
7.限时模式/记时
8.回放
9.界面美化
10.github