私はJavaでコマンドラインゲームを作成しています。 GameクラスとRoomクラスがあるという基本的な前提:正しい部屋に着き、ゲームが終了します。ユーザーが方向を移動させることができ、各部屋からnullを返すHashMap
:
public void move (String direction) {
Room nextRoom = currentLocation.getNeighbor(direction); //this is the problem, always nil
if (nextRoom == null){
msg = "You can't go in that direction";
}else{
currentLocation = nextRoom;
msg = currentLocation.getLongDescription();
}
}
問題は、この.getNeighborメソッドはnilを返すされているので、問題はどのように私と私のルームクラス内または多分私のgetNeighbor方法でありますお部屋をつくっています。これは私の文字列を受け取り、と私はその方向キーで部屋が自分であるかどうかを確認するために作成したHashMapのマップを見
public Room getNeighbor(String rDirection){
Room next = map.get(rDirection);
return next;
}
:ここではルームクラス内で私のgetNeighborの方法があります。私は私のゲームを初期化するとき、私は呼んで自分の部屋クラスの作成マップ・メソッドを持っている
private HashMap<String , Room> map = new HashMap<String , Room>();
:私のルームクラスで
:私は、問題は、私は私の部屋の方向HashMapを作成していますどのように怖いです。ここで方向性を追加するための方法だと、私は私のゲームのクラスで呼んでいるものを:
// Room Class Method
public void addNeighbor(String rDirection, Room r){
map.put(rDirection, r);
}
// Game Class - Initializing the Rooms
kitchen.addNeighbor("east", foyer);
kitchen.addNeighbor("north", library);
は、私が見てどの部屋から部屋への隣人を見つけることができません。エラーはコメント行で発生しますが、実際には私のルームクラスのメソッド、またはHashMapを作成している方法と思っています。とにかく、誰かが私が見逃しているように見えることを指摘できるかどうか、私の部屋には私の地図にどんな隣人がいなくても何故問題になるのか不思議に思っていました。ありがとう、トン。
すぐに役立つように:1)[SSCCE](http://sscce.org/)を投稿してください。 2)質問をする。 –