资源简介
java课程设计大作业写的 推箱子小游戏(含说明文档)
java课程设计大作业写的 推箱子小游戏(含说明文档)
代码片段和文件信息
package controller;
import entity.immobile.Immobile;
import entity.mobile.Box;
import entity.mobile.Mobile;
import exception.CannotUndoException;
/**
* Created by caojiajun on 2018/3/24.
*/
public class History {
private Node current;
private static History history;
private History() {
this.current = new Node(null null);
}
public static History getHistory() {
if (history == null) {
history = new History();
}
return history;
}
public static void restart() {
history = null;
}
public void addRecord(Immobile from Immobile to Mobile mobileInstance) {
HistoryRecord newRecord = new HistoryRecord(from to mobileInstance);
Node newNode = new Node(current newRecord);
current = newNode;
}
private void undoHelper() {
HistoryRecord record = current.record;
int rowFrom = record.from.getPositionRow();
int colFrom = record.from.getPositionCol();
int rowTo = record.to.getPositionRow();
int colTo = record.to.getPositionCol();
record.mobileInstance.move(rowTo colTo rowFrom colFrom);
current = current.pre;
}
public void undo() throws CannotUndoException {
if (current == null || current.record == null) {
throw new CannotUndoException(“已经到了初始状态,不能进行回退!“);
}
if (current.pre != null && current.pre.record != null && current.pre.record.mobileInstance instanceof Box) {
undoHelper();
undoHelper();
} else {
undoHelper();
}
}
private class HistoryRecord {
final Immobile from;
final Immobile to;
final Mobile mobileInstance;
protected HistoryRecord(Immobile from Immobile to Mobile mobileInstance) {
this.from = from;
this.to = to;
this.mobileInstance = mobileInstance;
}
}
private class Node {
Node pre;
final HistoryRecord record;
protected Node(Node pre HistoryRecord record) {
this.pre = pre;
this.record = record;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-31 05:54 Sokoban-master\
文件 130 2018-03-31 05:54 Sokoban-master\README.md
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\.idea\
文件 273 2018-03-31 05:54 Sokoban-master\Sokoban\.idea\misc.xm
文件 254 2018-03-31 05:54 Sokoban-master\Sokoban\.idea\modules.xm
文件 8792 2018-03-31 05:54 Sokoban-master\Sokoban\.idea\uiDesigner.xm
文件 33859 2018-03-31 05:54 Sokoban-master\Sokoban\.idea\workspace.xm
文件 423 2018-03-31 05:54 Sokoban-master\Sokoban\Sokoban.iml
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\maps\
文件 76 2018-03-31 05:54 Sokoban-master\Sokoban\maps\1.map
文件 59 2018-03-31 05:54 Sokoban-master\Sokoban\maps\2.map
文件 113 2018-03-31 05:54 Sokoban-master\Sokoban\maps\3.map
文件 67 2018-03-31 05:54 Sokoban-master\Sokoban\maps\4.map
文件 92 2018-03-31 05:54 Sokoban-master\Sokoban\maps\5.map
文件 93 2018-03-31 05:54 Sokoban-master\Sokoban\maps\6.map
文件 125 2018-03-31 05:54 Sokoban-master\Sokoban\maps\7.map
文件 126 2018-03-31 05:54 Sokoban-master\Sokoban\maps\8.map
文件 70 2018-03-31 05:54 Sokoban-master\Sokoban\maps\9.map
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\src\
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\src\controller\
文件 2199 2018-03-31 05:54 Sokoban-master\Sokoban\src\controller\History.java
文件 4389 2018-03-31 05:54 Sokoban-master\Sokoban\src\controller\Main.java
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\
文件 4254 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\Map.java
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\immobile\
文件 1272 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\immobile\Immobile.java
目录 0 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\mobile\
文件 1264 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\mobile\Box.java
文件 2394 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\mobile\Mobile.java
文件 1108 2018-03-31 05:54 Sokoban-master\Sokoban\src\entity\mobile\Pla
............此处省略3个文件信息
相关资源
- java课程设计大作业写的扫雷小游戏设
- java 课程设计大作业 写的塔防小游戏
- java 课程设计大作业 写的一个RPG游戏
- java后台获取微信用户的openId并返回
- JAVA多线程运用
- 利用JAVA和Floyd算法实现上海地铁最短
- java打字练习
- java 用udp,tcp协议实现的局域网聊天程
- java多线程模拟处理银行的实时转账交
- JAVA语言考试系统的设计与实现(论文
- java零基础入门-最新版2019600元的课
- javafx实现五子棋。有下棋悔棋重新开
- java实现野人与传教士过河问题
- POI读取Excel合并单元格并储存
- java动态识别文件编码EncodingDetect.jav
- 五子棋 人机对弈 JAVA实现
- 五子棋 人机对弈 只有棋盘版本
- 微信java支付和登录api demo
- Java经典编程题汇总
- java在线预览需要的jar包
- 未来教育二级java激活码
- Java课程设计文档说明书商城项目
- 双人对战java贪吃蛇
- Java爬虫项目
- 坦克大战Java源码适合新手
- JavaDES通过秘钥加密解密Demo
- 基于java socket使用tcp udp进行简易控制
- JAVA网络程序设计动态温度曲线绘制
- Java动态编译Java代码,运行在内存中,
- javaweb登录页面
评论
共有 条评论