ich muss für die schule ein projekt machen und habe keine möglichkeit mehr meine lehrerin zu fragen was für einen fehler ich programmiert habe.
Wenn ich die Methode s2setzen() der Klasse SPIELER2 aufrufe steht da immer "java.lang.NullPointerException:null" ich weiß, dass es hier öfter schon erklärt wurde, aber unter verwendung eines für mich zu komplizierten quellcodes. Hier mein Quellcode:
sry falls ich was falsch gemacht hab wegen forum Regeln
... bin neu hier
Wenn ich die Methode s2setzen() der Klasse SPIELER2 aufrufe steht da immer "java.lang.NullPointerException:null" ich weiß, dass es hier öfter schon erklärt wurde, aber unter verwendung eines für mich zu komplizierten quellcodes. Hier mein Quellcode:
Java:
public class SPIELER2
{
//Attribute
private ZEIGER zeiger;
private SPIELFELD spiel;
protected String name2;
public SPIELER2(String benName){
name2 = benName;
}
//Methoden
public void s2setzen(){
if(zeiger.zeigerZustand == 1 && spiel.status[0] == 0){
spiel.spieler1steine[0].sichtbarMachen();
spiel.status[0] = 2;
}else{
if(zeiger.zeigerZustand == 2 && spiel.status[1] == 0){
spiel.spieler1steine[1].sichtbarMachen();
spiel.status[1] = 2;
}else{
if(zeiger.zeigerZustand == 3 && spiel.status[2] == 0){
spiel.spieler1steine[2].sichtbarMachen();
spiel.status[2] = 2;
}else{
if(zeiger.zeigerZustand == 11 && spiel.status[3] == 0){
spiel.spieler1steine[3].sichtbarMachen();
spiel.status[3] = 2;
}else{
if(zeiger.zeigerZustand == 12 && spiel.status[4] == 0){
spiel.spieler1steine[4].sichtbarMachen();
spiel.status[4] = 2;
}else{
if(zeiger.zeigerZustand == 13 && spiel.status[5] == 0){
spiel.spieler1steine[5].sichtbarMachen();
spiel.status[5] = 2;
}else{
if(zeiger.zeigerZustand == 21 && spiel.status[6] == 0){
spiel.spieler1steine[6].sichtbarMachen();
spiel.status[6] = 2;
}else{
if(zeiger.zeigerZustand == 22 && spiel.status[7] == 0){
spiel.spieler1steine[7].sichtbarMachen();
spiel.status[7] = 2;
}else{
if(zeiger.zeigerZustand == 23 && spiel.status[8] == 0){
spiel.spieler1steine[8].sichtbarMachen();
spiel.status[8] = 2;
}else{
System.out.println("Dieses Feld ist bereits besetzt.");
}
}
}
}
}
}
}
}
}
}
}
Java:
public class SPIELFELD {
//Attribute
private RECHTECK linie1;
private RECHTECK linie2;
private RECHTECK linie3;
private RECHTECK linie4;
//Spielsteine
protected RECHTECK [] spieler1steine;
protected KREIS [] spieler2steine;
//Status
protected int [] status;
public SPIELFELD (){
status = new int[9];
linie1 = new RECHTECK(150, 50, 2, 300, "schwarz", true);
linie2 = new RECHTECK(250, 50, 2, 300, "schwarz", true);
linie3 = new RECHTECK(50, 150, 300, 2, "schwarz", true);
linie4 = new RECHTECK(50, 250, 300, 2, "schwarz", true);
spieler1steine= new RECHTECK[9];
spieler2steine= new KREIS[9];
for(int i=0; i<3; i++){
spieler1steine[i] = new RECHTECK((i+1)*90, 75, 50, 50, "lila", false);
spieler1steine[i+3] = new RECHTECK((i+1)*90, 175, 50, 50, "lila", false);
spieler1steine[i+6] = new RECHTECK((i+1)*90, 275, 50, 50, "lila", false);
spieler2steine[i] = new KREIS(50, (i+1)*90, 75, "gruen", false);
spieler2steine[i+3] = new KREIS(50, (i+1)*90, 175, "gruen", false);
spieler2steine[i+6] = new KREIS(50, (i+1)*90, 275, "gruen", false);
}
}
public void auf0setzen(){
for(int i=0; i<9;i++){
status[i]=0;
System.out.println(status[i]);
}
}
}
sry falls ich was falsch gemacht hab wegen forum Regeln
Zuletzt bearbeitet: