Hallo
Ich versuche gerade, Schiffe versenken umzusetzen. Nach Eingabe der ersten Koordinate kommt der Fehler java.lang.NullPointerException
at Spiel.setKoordinaten(Spiel.java:28)
at Spiel.main(Spiel.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
Irgendwo wird ins Nichts gezeigt, aber ich verstehe einfach nicht wo, nach Erzeugen, ich habe in die koordinaten ArrayList die erste Koordinate reingepackt, und will die dann auch in die bootsliste packen?!
Auf die Schiffsklasse hab ich verzichtet, die hat (wohl?) nichts mit dem Pointerfehler zu tun. Danke im Voraus
at Spiel.setKoordinaten(Spiel.java:28)
at Spiel.main(Spiel.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
Irgendwo wird ins Nichts gezeigt, aber ich verstehe einfach nicht wo, nach Erzeugen, ich habe in die koordinaten ArrayList die erste Koordinate reingepackt, und will die dann auch in die bootsliste packen?!
Auf die Schiffsklasse hab ich verzichtet, die hat (wohl?) nichts mit dem Pointerfehler zu tun. Danke im Voraus
Java:
import java.util.*;
public class Spiel{
ArrayList<String> bootsListe;
String[] alphabet = {"A","B","C","D","E","F","G"};
ArrayList<String>koordinatenListe;
public ArrayList<String> erstelleKoordinatenliste(){
ArrayList<String>koordinatenListe = new ArrayList<String>();
for(int u=0;u<=6;u++){
for (int z=1;z<=7;z++){
koordinatenListe.add(alphabet[u] + z);
}
}
return koordinatenListe;
}
public void setKoordinaten(){
Schiff schiff1=new Schiff();
schiff1.koordinaten = new ArrayList<String>();
for(int v=1;v<=3;v++){
schiff1.koordinaten.add(Tastatur.liesString("Bitte gib die " + v + ". Koordinate ein"));
bootsListe.add(schiff1.koordinaten.get(v-1));
}
schiff1.name=Tastatur.liesString("Bitte gib den Namen von Schiff 1 ein");
Schiff schiff2=new Schiff();
schiff2.koordinaten = new ArrayList<String>();
for(int v=1;v<=3;v++){
schiff2.koordinaten.add(Tastatur.liesString("Bitte gib die " + v + ". Koordinate ein"));
bootsListe.add(schiff2.koordinaten.get(v-1));
}
schiff2.name=Tastatur.liesString("Bitte gib den Namen von Schiff 2 ein");
Schiff schiff3=new Schiff();
schiff3.koordinaten = new ArrayList<String>();
for(int v=1;v<=3;v++){
schiff3.koordinaten.add(Tastatur.liesString("Bitte gib die " + v + ". Koordinate ein"));
bootsListe.add(schiff3.koordinaten.get(v-1));
}
schiff3.name=Tastatur.liesString("Bitte gib den Namen von Schiff 3 ein");
}
public String tippAbschuss(){
String eingabe=Tastatur.liesString("Welche Koordinate möchetst du abschießen?");
return eingabe;
}
public boolean treffer(String tipp){
if(bootsListe.contains(tipp)){
bootsListe.remove(tipp);
return true;
}
else
return false;
}
public void druckeSpielfeld(){
for(int u=0;u<=6;u++){
for (int z=1;z<=7;z++){
if(z<7){
System.out.print(alphabet[u] + z + " ");
}
else
System.out.println(alphabet[u] + z + " ");
}
}
}
public static void main(String[]args){
Spiel macher=new Spiel();
macher.setKoordinaten();
macher.koordinatenListe=macher.erstelleKoordinatenliste();
while(macher.bootsListe.isEmpty()==false){
macher.druckeSpielfeld();
macher.treffer(macher.tippAbschuss());
}
}
}