Sista raderna när jag ska sätta in mina rum i en arrayList genererar fel och jag kan verkligen inte förstå varför?? Det går bra att komplimera men felen uppstår dö jag kör scriptet.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Stack;
import java.util.Random;
public class Game
{
private Parser parser;
//private Room currentRoom;
private Player player;
private Stack visitedRooms;
private ArrayList rooms;
private ArrayList items;
private Random randomizer;
/**
* Create the game and initialise its internal map.
*/
public Game(String playerName)
{
player = new Player(playerName);
createRooms();
rooms = new ArrayList();
items = new ArrayList();
parser = new Parser();
randomizer = new Random();
visitedRooms = new Stack();
// add the start position ton visited rooms at start up
visitedRooms.push(player.getCurrentRoom());
}
/**
* Create all the rooms and link their exits together.
*/
private void createRooms()
{
Room cell, corridor, harrysCell, emptyCell, deathrow, doctor, kitchen, storageRoom, publicArea, lobby, freedom;
// create the rooms
cell = new Room("description");
corridor = new Room("description");
harrysCell = new Room("description");
emptyCell = new Room("description");
deathrow = new Room("description");
doctor = new Room("description");
kitchen = new Room("description");
storageRoom = new Room("description");
publicArea = new Room("description");
lobby = new Room("description");
freedom = new Room("description");
// Add the rooms to the ArrayList rooms
rooms.add(cell); //[B]Fel genereras här och neråt, nullPointerException[/B]
rooms.add(corridor);
rooms.add(harrysCell);
rooms.add(emptyCell);
rooms.add(deathrow);
rooms.add(doctor);
rooms.add(kitchen);
rooms.add(storageRoom);
rooms.add(publicArea);
rooms.add(lobby);
rooms.add(freedom);
}
ArrayList:en för rooms är inte skapat när du skapar rummen i creareRooms metoden, utan den skapar du först efter att rummen har skapats, skapa den innan du anropar createRooms():
player = new Player(playerName);
rooms = new ArrayList();
createRooms();