package castle;
import java.util.HashMap;
public class GongDian {
private String a;
private HashMap<String,GongDian> ste=new HashMap<String,GongDian>();
public GongDian(String a) {
this.a=a;
}
//创建房间
public void Setcuang(String eye,GongDian gongdian) {
ste.put(eye, gongdian);
}
@Override
public String toString() {
return a;
}
public String getgongdian() {
StringBuffer sb=new StringBuffer();
for(String c:ste.keySet()) {
sb.append(c);
sb.append(" ");
}
return sb.toString();
}
public GongDian getGong(String ljh) {
return ste.get(ljh);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
package castle;
import java.util.HashMap;
import java.util.Scanner;
public class Cheshi {
private GongDian sumb;
private HashMap<String,Handler> handlers=new HashMap<String,Handler>();
public Cheshi() {
handlers.put("go", new HandlerGo(this));
handlers.put("help", new HandlerHelp(this));
handlers.put("bye", new Handlerbye(this));
sumbs();
}
public void sumbs() {
GongDian 餐厅; GongDian 卫生间; GongDian 卧室;GongDian 地窖;
GongDian 门外; GongDian 客厅; GongDian 阳台;
//定义房间
餐厅=new GongDian("餐厅");
卫生间=new GongDian("卫生间");
卧室=new GongDian("卧室");
地窖=new GongDian("地窖");
门外=new GongDian("门外");
客厅=new GongDian("客厅");
阳台=new GongDian("阳台");
//定义房间的出口
餐厅.Setcuang("晚霞", 阳台);
卫生间.Setcuang("睡觉",卧室 );
卧室.Setcuang("日出", 阳台);
餐厅.Setcuang("睡觉",卧室 );
餐厅.Setcuang("小便", 卫生间);
卫生间.Setcuang("吃饭", 餐厅);
卫生间.Setcuang("吹吹风", 阳台);
卫生间.Setcuang("看电视", 客厅);
门外.Setcuang("看日出", 阳台);
门外.Setcuang("上厕所", 卫生间);
门外.Setcuang("上床", 卧室);
门外.Setcuang("取东西", 地窖);
门外.Setcuang("看电影", 客厅);
地窖.Setcuang("放东西", 餐厅);
地窖.Setcuang("洗手", 卫生间);
客厅.Setcuang("睡觉", 卧室);
客厅.Setcuang("看太阳", 阳台);
客厅.Setcuang("外出", 门外);
阳台.Setcuang("休息", 卧室);
阳台.Setcuang("喝奶茶", 餐厅);
sumb=门外;
}
public void printfGong() {
System.out.println("您好!");
System.out.println("欢迎来到这里");
System.out.println("需要帮助请输入:help");
System.out.println("下面请开始你的游戏吧");
System.out.println("你目前的位置在:"+sumb);
System.out.println("出口有:");
System.out.println(sumb.getgongdian());
System.out.println();
}
public void printel(String ljh) {
GongDian exte=sumb.getGong(ljh);
if(ljh==null) {
System.out.println("那里没有门");
}
else {
sumb=exte;
System.out.println("你目前的位置在:"+sumb);
System.out.println("出口有:");
System.out.println(sumb.getgongdian());
System.out.println();
}
}
public void play() {
Scanner in=new Scanner(System.in);
while(true) {
String dd=in.nextLine();
String[] wosd=dd.split(" ");
Handler handler= handlers.get(wosd[0]);
String value="";
if(wosd.length > 1) {
value=wosd[1];
}
if(handler !=null) {
handler.doCmd(value);
}
if(handler.isBye()) {
break;
}
}
in.close();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Cheshi aa=new Cheshi();
aa.printfGong();
aa.play();
System.out.println("欢迎你的光临,再见");
}
}
package castle;
public class Handler {
protected Cheshi cheshi;
public Handler(Cheshi Cheshi) {
this.cheshi=cheshi;
}
public void doCmd(String word) {}
public boolean isBye() {
return false;
}
}
package castle;
public class Handlerbye extends Handler{
public Handlerbye(Cheshi cheshi) {
super(cheshi);
// TODO Auto-generated constructor stub
}
@Override
public boolean isBye() {
// TODO Auto-generated method stub
return true;
}
}
package castle;
public class HandlerHelp extends Handler{
public HandlerHelp(Cheshi cheshi) {
super(cheshi);
// TODO Auto-generated constructor stub
}
public void doCmd(String word) {
System.out.println("请问你是迷路了吗?");
System.out.println("可以输入 go: 客厅、阳台、卫生间、卧室,试试看哦");
System.out.println("比如:go 客厅");
}
}
package castle;
public class HandlerGo extends Handler{
public HandlerGo(Cheshi cheshi) {
super(cheshi);
// TODO Auto-generated constructor stub
}
public void doCmd(String word) {
cheshi.printel(word);
}
}
emm,什么问题啊,你光贴代码吗