У меня есть класс под названием «Игра» на Java, и цель/цель - добраться до определенной комнаты, комнаты «трон». Когда тронная комната будет достигнута, игра заканчивается.Как получить доступ к переменным с помощью другого метода
public class Game {
// fields
private Room currentRoom;
private boolean finished;
private Room throne;
/**
* Create the game and initialise its internal map.
*/
public Game()
{
finished = false;
createRooms();
}
/**
* Create all the rooms and link their exits together.
*/
private void createRooms()
{
Room gate, graveyard, church, crypt, entrance, hall, kitchen, buttery, greathall, staircase,
dungeon, topstaircase, throne, solar, wardrobe, privy;
// create the rooms
gate = new Room("outside the old gate of the castle");
graveyard = new Room("on a wind-swept gaveyard");
church = new Room("in a small ancient church");
throne = new Room("in the throne room with golden walls");
// other rooms ...
// initialize room exits
gate.setExit("north", graveyard);
throne.setExit("south", topstaircase);
// other exits ...
}
}
Для перехода в одном направлении/номер:
public String goRoom(String direction)
{
assert direction != null : "Game.goRoom gets null direction";
// Try to leave current room.
Room nextRoom = currentRoom.getExit(direction);
if (nextRoom == null) {
return "There is no exit in that direction!";
} else {
currentRoom = nextRoom;
return currentRoom.getLongDescription();
}
}
Чтобы перейти в определенную комнату, чтобы закончить игру, т.е. «трон» номер вот что я сделал:
if (currentRoom.equals(throne)) {
finished = true;
return "Congrats you have reached the throne room";
}
Но Я продолжаю получать эту ошибку: cannot find symbol - variable throne
Это проект, основанный на «Объекте сначала с Java u Sing Bluej»
передать переменную как параметр во втором методе. или сделать его экземпляром или переменной класса – Prashant
Вы указали 'трон' как локальную переменную внутри метода. Вам либо нужно передать переменную в качестве параметра в метод-окружение, на котором основан ваш последний сегмент, либо сделать переменную 'трон' членом класса. – initramfs
Я не думаю, что вы вызываете goRoom() из createRoom(), поэтому сделайте его переменной экземпляра – Prashant