加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Room.java 2.04 KB
一键复制 编辑 原始数据 按行查看 历史
方子聪 提交于 2020-06-20 16:21 . 迷宫
/**
* Class Room - a room in an adventure game.
*
* This class is part of the "World of Zuul" application.
* "World of Zuul" is a very simple, text based adventure game.
*
* A "Room" represents one location in the scenery of the game. It is
* connected to other rooms via exits. The exits are labelled north,
* east, south, west. For each direction, the room stores a reference
* to the neighboring room, or null if there is no exit in that direction.
*
* @author Michael K?lling and David J. Barnes
* @version 2016.02.29
*/
import java.util.*;
public class Room
{
private String description;
private Map<String, Room> exits = new HashMap<>();
private Thing thing = null;
private Trap trap = null;
/**
* Create a room described "description". Initially, it has
* no exits. "description" is something like "a kitchen" or
* "an open court yard".
* @param description The room's description.
*/
public Room(String description)
{
this.description = description;
}
public Room(String description, Thing thing) {
this(description);
this.thing = thing;
}
public Room(String description, Trap trap){
this(description);
this.trap = trap;
}
public void setExit(String direction, Room room) {
exits.put(direction, room);
}
/**
* @return The description of the room.
*/
public String getDescription()
{
return description;
}
public void printExits() {
System.out.print("Exits: ");
exits.keySet().stream().forEach(key -> System.out.print(key + " "));
System.out.println();
}
public Room goNext(String direction) {
return exits.get(direction);
}
public Thing getThing() {
return this.thing;
}
public Trap getTrap() {
return this.trap;
}
public void lookRoom()
{
System.out.print(thing.getName());
}
public void remove() {
this.thing = null;
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化