Skip to content

chencx2023/Sokoban_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

推箱子游戏 (Sokoban)

前端

网格仓库布局,角色(可以上下左右移动),可移动的箱子,目标位置(标记),自由空间

后端

  1. 玩家的移动:上下左右移动
  2. 箱子的移动:
  • 被玩家推着移动,向玩家移动的方向移动,一次移动一格
  • 不能同时推两个箱子
  • 箱子后面有墙壁就无法移动
  1. 游戏的目标 把所有箱子移动到指定位置
  2. 判断游戏结束
  • 当实现游戏目标,自动判定为赢
  • 设计程序判定出现某种情况后无法获胜

具体需求

  1. 用户注册

选择游客模式或注册用户

  1. 游戏进度保存(10)

可以设计关卡选择,玩家移动次数计算保存

1.用户登录或选择游客模式后,游戏会直接进入关卡(高级要求有关卡选择界面),并正确显示地图,游戏还应显示关卡号和人物移动次数。

  1. 游戏应允许玩家在游戏过程中随时重启新游戏。(不是退出程序再重新运行。

  2. 重启新游戏时,游戏数据需要与新游戏一致。

3.多用户注册(15)

  1. 为游客和注册用户实现登录选择界面。
  2. 游客无需注册即可玩游戏,但没有保存游戏进度的功能。
  3. 用户登录界面包含注册页面,输入账户信息后即可登录。
  4. 程序退出并再次运行后,之前注册的用户仍然可以登录。

4.保存和加载游戏(15)

  1. 每个用户(游客除外)都可以选择加载自己之前的存档,存档为一个单独的文件,再次保存会覆盖之前的存档(覆盖原存档是基本要求,如果每个用户有多个存档位,则不会加分)。
  2. 从游戏开始界面,玩家可以选择加载自己最近的存档,存档中应包含棋盘状态和迄今为止的移动次数等信息。
  3. 每个用户的存档数据都是唯一的。
  4. 手动保存是基本要求,在定时或退出时自动保存可获得高级积分。
  5. 存档文件错误检查:如果存档在加载时格式或内容损坏,则不会加载损坏的存档,游戏仍会运行而不会崩溃。 (如果您的游戏能够检测出被他人修改过的存档,同时仍能保持存档数据的合法性,则可以获得高级积分。)

5.游戏具体执行(30)

  1. 推箱子:当玩家移动角色时,他们可以朝移动方向推任何箱子,只要箱子后面有空隙即可。箱子可以一直移动,直到撞到墙壁或另一个箱子。
  2. 按钮控制:界面必须包含上、下、左、右按钮,以方便玩家朝不同方向移动。
  3. 键盘控制:玩家朝不同方向移动(上、下、左、右)需要键盘控制。
  4. 游戏胜利:游戏的目标是将所有箱子推到指定的目标位置。一旦所有目标都被箱子覆盖,则显示胜利屏幕,表明谜题已成功解决。
  5. 游戏失败:如果游戏未胜利时无法移动箱子(例如,箱子被推到角落),则应显示游戏结束消息或重新开始关卡的选项。

6.GUI(10)

  1. 使用 JavaFX、Swing 或其他 Java 图形框架为游戏实现图形界面。
  2. 根据课程提供的演示完成代码即可获得本部分的分数。
  3. 独立创建 GUI 可计入高级分数。
  4. 如果您的程序需要输入命令行,则无法获得本任务的满分。

可以做的bouns

1.通往下一关的按钮(nextlevel)

2.撤销的操作

3.记录这个关卡尝试了多少次(Trail)

4.换箱子,人物皮肤

5.音乐(背景音乐,每次推箱子的音乐,按按钮的声音)

6.道具关卡

7.限时模式/记时

8.回放

9.界面美化

10.github

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages