面向对象程序设计——Java语言 浙江大学 翁恺
城堡游戏框架+数据,程序和一点笔记
翁恺老师的慕课课程,java进阶课程中的城堡游戏,源码可以自行下载:城堡游戏源码下载
B站指路:课程
课程后续对源码进行了一系列改造,在这里放上我的程序,没有跟上课程的同学可以参考一下:程序下载(提取🐎:tvhd)
我放的是castle的包,需要同学们自己新建文件夹,把下载的包放到src。我在程序里做了一些笔记,应该是比较好理解的。
我也是新手,如有不足希望可以一起讨论讨论
下面放上我的程序
Game类
package castle;
import java.util.HashMap;
import java.util.Scanner;
public class Game {
private Room current_room;
private HashMap<String, Handler> handlers = new HashMap<String,Handler>();
// 构造器,game new出来之后自动初始化,并在handlers表里加载用户指令映射
// this指这个被new出来的game
public Game() {
setRoom();
// 事实上后面这些new出来的value就是函数,操作都在构造器里是自动调用的
// 相当于this.go\this.help,根据key判断调用哪个函数,bye不是构造器,不过使用上差不多
handlers.put("go", new HandlerGo(this));
handlers.put("help", new HandlerHelp(this));
handlers.put("bye", new HandlerBye(this));
}
// 房间初始化
public void setRoom() {
//一个房间一张表
Room outside = new Room("城堡外");
Room lobby = new Room("大堂");;
Room study = new Room("书房");
Room bedroom = new Room("卧室");
Room pub = new Room("小酒吧"