Я делаю игру Text Adventure в Groovy в качестве упражнения и сталкиваюсь со странной ошибкой.
Прямо сейчас у меня есть enum
для направлений, по которым игрок сможет двигаться, в настоящее время включая север, юг, восток, запад, вверх и вниз.
У меня есть класс Room
, который содержит Map
других связанных комнат и их направлений. Когда я добавляю Room
к другому Room
в определенном Direction
, я хочу иметь возможность также добавлять текущий Room
к другому Room
в противоположном направлении.
Пример :Если я добавлю соединение из комнаты 1 в комнату 2 на север,Я хочу иметь возможность одновременно добавить соединение из комнаты 2 в комнату 1, идущую на юг.
В настоящее время я пытаюсь реализовать это, используя enum
с именем Direction
с прикрепленной переменной экземпляра opposite
(. типаDirection
). Разве это не разрешено? Я не получаю ошибок компилятора или чего-то еще, но я не могу заставить его работать.
Вот полная enum
декларация:
public enum Direction {
North(South), South(North), East(West), West(East), Up(Down), Down(Up)
private Direction opposite
Direction(Direction d){
opposite = d
}
public opposite(){
return opposite
}
}
И это метод, который я вызываю из:
public void addConnection(Direction d, Spot spot){
connections[d] = spot
spot.connections[d.opposite()] = this
}
где connections
— это public Map<Direction, Spot>
.
В этом случае в connections
добавляется запись, которая выглядит так:
null:Spot@some_hexadecimal_representation
Любая помощь будет здорово. Благодарю вас!