Nullpointer Exception? Was tun?

Status
Nicht offen für weitere Antworten.
K

Kquadrato

Gast
Ich schreibe seit 2 Tagen ein Programm / Spiel (ohne gui alles wird auf die Konsolo ausgegeben).
Also, ich hab soweit alles schön versucht zu strukturieren und mit dem klassenmode zu arbeiten, nur leider versteh ich nicht genau wo die Exception geworfen wird mit dme Nullpointer und wieso genau...

ich poste hier mal die Quellcodes...
Also das mit den Spieler werd ich versuchenanders zu machen...
ist nur etwas doof geworden, weil mir erst heute früh was einfiel...
wollte heute die Ausgabe testen, wie das soweit aussieht, leider bekomm ich da diesen Nullpointer -.-"

Ich hoffe die Kommendare reichen aus bei den Funktionen.

Zum Spiel, es soll ein 8x8 Spielfeld sein, das mit Zufallszahlen zwischen 1-9 geschrieben beschrieben wird. Auf den Feld stehen zwei Figuren, diese stehen aber diagonal. Das Spielprinzip, die Figur auf dem Spielfeld müssen 100 Punkte schaffen um zu siegen.
Aber wichtig ist, das die Punkte die auf dem Feld sind, von einem Spieler "gefressen" werden, somit verschwieden, falls der zweite Spieler auf das feld geht, bekommt er keine Punkte (wie denn, wenn die schon gefressen wurden :lol: ).

Ich würde mich über eine Hilfe sehr freuen


Main:
Code:
class Max {
	static private Steuerung dieSpielsteuerung;
	static private String test;
	public void ausgebenaufFeld(int x, int y, char sympol ){
		
	}
	
//------------------------------------------------------------------------------------------
////Textausgabe über den Spielzustand, wer dran ist, wer gewonnen hat ect.
//------------------------------------------------------------------------------------------	
	static public void ausgebenText(int index){
		switch (index){
		case 1: System.out.println("Spieler1 'S' ist am Zug"); break;
		case 2: System.out.println("Spieler2 'W' ist am Zug"); break;
		case 3: System.out.println("Unzulässige Eingabe Spieler1 'S'"); break;
		case 4: System.out.println("Unzulässige Eingabe Spieler2 'W'"); break;
		case 5: System.out.println("Spieler1 'S' gewinnt"); break;
		case 6: System.out.println("Spieler2 'W' gewinnt"); break;
		}
	}
	
//------------------------------------------------------------------------------------------
////Das Spielfeld auf der Konsole zeichnen lassen
//------------------------------------------------------------------------------------------	
	static public String printSpielfeld(){
		System.out.println();
		for(int i=0; i<dieSpielsteuerung.dasSpielfeld.getfeldX(); i++){
			System.out.print("[");
			
			for(int j=0; j<dieSpielsteuerung.dasSpielfeld.getfeldY(); j++){
				dieSpielsteuerung.derSpieler.setzeSpieler();
				System.out.print(dieSpielsteuerung.dasSpielfeld.getFeld(i, j) +"");
			}
			System.out.print("]");
		}
		return test;
	}
	

		
//------------------------------------------------------------------------------------------
////Die main-methode
//------------------------------------------------------------------------------------------	
	public static void main(String[] args) throws Exception {
		IO.write("Willkommen im Spiel MAX");
		
		//Ausgeben des Spielfeldes
		System.out.println(printSpielfeld());
	}
	
}//end


Die Spielfeld-klasse
Code:
class Spielfeld {
	private char feld [][];		//Spielfeld
	private int feldX = 8;		//Spielfeldgröße X festlegen
	private int feldY = 8;     //Spielfeldgröße Y festlegen


	Spielfeld(){
		
	}
	
//------------------------------------------------------------------------------------------
////Spielfeld erzeugen
//------------------------------------------------------------------------------------------	
	public void erzeugen(int sposX, int sposY, int wposX, int wposY){
		feld = new char [feldX][feldY];
		 for (int i = 0; i < feldX; i++){							//alle X durchgehen
			 for (int j = 0; j < feldY; j++){ 						//alle Y durchgehen
				 feld[i][j] = ((char)((Math.random() * 8) + 1));    // Zufallszahl zuweisen  [1..49]
			 }
		 }
		 feld[sposX][sposY] = 'S';	//setze S in das Feld
		 feld[wposX][wposY] = 'W';	//setze W in das Feld 
	}	
	
//------------------------------------------------------------------------------------------
////Wichtige Get-Funktion wegen dem Geheimnissprinzip
//------------------------------------------------------------------------------------------	
	public int getfeldX (){
		return feldX;
	}
	
	public int getfeldY(){
		return feldY;
	}
	
//gebeFeld an ein weiteres Objekt
	public char getFeld(int x, int y){
		return feld[x][y];
	}	
	
//------------------------------------------------------------------------------------------
////Belegt das Feld mit der Spielfigur
//------------------------------------------------------------------------------------------	
	public boolean belegeFeld(int x, int y, char spieler){
		if(feldFrei(x,y)==false){
			return false;
		}
		
		else {
			feld[x][y]= spieler;  //ob spieler 1 oder spieler2 das feld belegt 
			return true;
		}
	}
	
//------------------------------------------------------------------------------------------
////Prüft ob das Feld wirklich frei ist, bevor der Spieler gesetz wird
//------------------------------------------------------------------------------------------	
	public boolean feldFrei(int x, int y){
		if(x>=8 || y>=8 || x<0 || y<0) {    //Prüfe ob innerhalb vom Spielfeld
		    return false;
		    }

		//Prüfe ob frei -> zahl 0-9
		if(feld[x][y] == '0'){
			return true;
			}		
		if(feld[x][y]=='1' || feld[x][y]=='2' || feld[x][y]=='3'){           		
		    return true;
			}
		if(feld[x][y]=='4' || feld[x][y]=='5' || feld[x][y]=='6'){           		
		    return true;
		    }		
		if(feld[x][y]=='7' || feld[x][y]=='8' || feld[x][y]=='9'){           		
		    return true;
		    }
		
		else {return false;}
	}
	
//------------------------------------------------------------------------------------------
////Das Feld wird "freigegeben" bzw. gelöscht!
//------------------------------------------------------------------------------------------	
	public void freigabeFeld(int x, int y){
		feld[x][y]='0';
	}
	
}//end

Spieler:
Code:
class Spieler {
	private int sposX, sposY, wposX, wposY;   //Positionen von Spieler 'S' wie 'W'
	Spielfeld dasSpielfeld;
	
//------------------------------------------------------------------------------------------
////Wichtige Get-Funktion wegen dem Geheimnissprinzip
//------------------------------------------------------------------------------------------	
	public int getSposX(){
		return sposX;
	}
	
	public int getSposY(){
		return sposY;
	}
	
	public int wposX(){
		return wposX;
	}
	
	public int wposY(){
		return wposY;
	}

//------------------------------------------------------------------------------------------
////Spieler1 und Spieler2 Diagonal setzen
//------------------------------------------------------------------------------------------	
	public void setzeSpieler (){
		sposX = ((dasSpielfeld.getfeldX() /2)-1);
		sposY = ((dasSpielfeld.getfeldY() /2)-1);
		wposX = ((dasSpielfeld.getfeldX() /2)+1);
		wposY = ((dasSpielfeld.getfeldY() /2)+1);		

		dasSpielfeld.erzeugen(sposX, sposY, wposX, wposY);
	}
	
//------------------------------------------------------------------------------------------
////Prüfe ob das Feld von Spieler1 wirklich frei ist
//------------------------------------------------------------------------------------------	
	public boolean freiFeldSpieler1(){
		if(!dasSpielfeld.feldFrei(sposX, sposY-1) &&
		   !dasSpielfeld.feldFrei(sposX, sposY+1) &&
		   !dasSpielfeld.feldFrei(sposX-1, sposY) &&
		   !dasSpielfeld.feldFrei(sposX+1, sposY)) {
			return false;
			}
		
			else {
			return true;
			}			
	}

//------------------------------------------------------------------------------------------
////Prüfe ob das Feld von Spieler2 wirklich frei ist
//------------------------------------------------------------------------------------------	
	public boolean freiFeldSpieler2(){	
		if(!dasSpielfeld.feldFrei(wposX, wposY-1) &&
			!dasSpielfeld.feldFrei(wposX, wposY+1) &&
			!dasSpielfeld.feldFrei(wposX-1, wposY) &&
			!dasSpielfeld.feldFrei(wposX+1, wposY)) {
			return false;
			}
						
			else {
			return true;
			}			
	}
	
//------------------------------------------------------------------------------------------
////Spieler1 springt auf das gewählte FELD
//------------------------------------------------------------------------------------------	
	public boolean geheNachSpieler1(char weg){
		boolean  gesprungen= false;
		
		switch (weg){
			case 'O':
				if(dasSpielfeld.belegeFeld(sposX+1, sposY, 'S')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposX++;
					gesprungen = true;
				}
				break;
				
			case 'W':
				if(dasSpielfeld.belegeFeld(sposX-1, sposY, 'S')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposX--;
					gesprungen = true;					
				}
				break;
				
			case 'N':
				if(dasSpielfeld.belegeFeld(sposX, sposY+1, 'S')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposY++;
					gesprungen = true;	
				}
				break;
				
			case 'S':
				if(dasSpielfeld.belegeFeld(sposX, sposY-1, 'S')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposY--;
					gesprungen = true;	
				}
				break;
		}
		return gesprungen;
	}
	

//------------------------------------------------------------------------------------------
////Spieler2 springt auf das gewählte FELD
//------------------------------------------------------------------------------------------	
	public boolean geheNachSpieler2(char weg){
		boolean  gesprungen= false;
		
		switch (weg){
			case 'O':
				if(dasSpielfeld.belegeFeld(sposX+1, sposY, 'W')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposX++;
					gesprungen = true;
				}
				break;
				
			case 'W':
				if(dasSpielfeld.belegeFeld(sposX-1, sposY, 'W')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposX--;
					gesprungen = true;					
				}
				break;
				
			case 'N':
				if(dasSpielfeld.belegeFeld(sposX, sposY+1, 'W')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposY++;
					gesprungen = true;	
				}
				break;
				
			case 'S':
				if(dasSpielfeld.belegeFeld(sposX, sposY-1, 'W')==true){
					dasSpielfeld.freigabeFeld(sposX, sposY);
					sposY--;
					gesprungen = true;	
				}
				break;
		}
		return gesprungen;
	}	
	
}//end


und nun den letzten block...
Steuerung
Code:
class Steuerung {
	//private int zustand = 0; //spiel ist noch nicht gestartet
	Spielfeld dasSpielfeld;
	Spieler derSpieler;
	
	Steuerung(){
		dasSpielfeld = new Spielfeld();	
		derSpieler = new Spieler();
	}
	
	void bearbeiteTastatur(){
		
	}
	
	//boolean bewegeSpieler(char richtung){
	//	boolean ruckgabe = false;	
	//}
}
[/code]
 
G

Guest

Gast
Wo genau kommt die Exception?
Wenn eine NullPointerException kommt, dann immer mit einer Zeilennummer, um die betreffende Stelle schnell
zu finden. wenn du weisst, wo es knallt, kanst du über die Ursachen nachdenken.
 
G

Guest

Gast
Anonymous hat gesagt.:
Wo genau kommt die Exception?
Wenn eine NullPointerException kommt, dann immer mit einer Zeilennummer, um die betreffende Stelle schnell
zu finden. wenn du weisst, wo es knallt, kanst du über die Ursachen nachdenken.

in der main:
zeile 49
Code:
System.out.println(printSpielfeld());
zeile 28 [coder]for(int i=0; i<dieSpielsteuerung.dasSpielfeld.getfeldX(); i++){[/code][/quote]
 
G

Guest

Gast
Anonymous hat gesagt.:
Wo genau kommt die Exception?
Wenn eine NullPointerException kommt, dann immer mit einer Zeilennummer, um die betreffende Stelle schnell
zu finden. wenn du weisst, wo es knallt, kanst du über die Ursachen nachdenken.

in der main:
zeile 49
Code:
System.out.println(printSpielfeld());
zeile 28 [coder]for(int i=0; i<dieSpielsteuerung.dasSpielfeld.getfeldX(); i++){[/code][/quote]
 
G

Guest

Gast
Shadeo hat gesagt.:
'dieSpielsteuerung' in der Klasse 'Max' wird nirgends initialisiert (hoffe hab das nicht übersehen, habs nur kurz überflogen)

glaub du meins das hier o.o
ob es an dem private liegt?
Code:
static private Steuerung dieSpielsteuerung;
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
N Nullpointer exception Java Basics - Anfänger-Themen 4
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
R indexOf wirft NullPointer Exception Java Basics - Anfänger-Themen 2
H Nullpointer Exception Java Basics - Anfänger-Themen 8
P NullPointer Exception Java Basics - Anfänger-Themen 6
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
C Java Nullpointer Exception in 2D-Spiel Snake Java Basics - Anfänger-Themen 8
N NullPointer Exception bei setSource (Audioplayer mit JMF) Java Basics - Anfänger-Themen 6
J Methoden in externer Klasse -> Nullpointer Exception Java Basics - Anfänger-Themen 9
J Nullpointer Exception - Warum? Java Basics - Anfänger-Themen 9
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
D Nullpointer Exception Java Basics - Anfänger-Themen 2
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
MEETyA NullPointer Exception - Sudoku Java Basics - Anfänger-Themen 2
D Nullpointer exception bei: if( (rc.getTower != null) ) {..} Java Basics - Anfänger-Themen 2
G Problem mit Nullpointer Exception Java Basics - Anfänger-Themen 2
R Wieder mal ne NullPointer Exception. Java Basics - Anfänger-Themen 8
D nullpointer exception Java Basics - Anfänger-Themen 12
D Problem mit Vector / Nullpointer Exception Java Basics - Anfänger-Themen 3
S Nullpointer Exception bei Point2D Java Basics - Anfänger-Themen 2
8 JLayer Nullpointer Exception Java Basics - Anfänger-Themen 6
megachucky kleines problem mit einer nullpointer exception Java Basics - Anfänger-Themen 2
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
Dimax BufferedReader.readLine().length() wirft NullPointer Java Basics - Anfänger-Themen 6
AlexG. Nullpointer Exeption Java Basics - Anfänger-Themen 46
AlexG. Nullpointer exeption Fehler Java Basics - Anfänger-Themen 0
J Nullpointer aber wo? Java Basics - Anfänger-Themen 12
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
K Nullpointer beim Erstellen eines Imageicons Java Basics - Anfänger-Themen 2
O Perfomance: Arraylist absichtlich zum Nullpointer schicken... Java Basics - Anfänger-Themen 16
S Iterator next() Nullpointer Java Basics - Anfänger-Themen 2
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
Q CardLayout und NullPointer Java Basics - Anfänger-Themen 3
R NullPointer Exceptions Java Basics - Anfänger-Themen 3
P ArrayList Nullpointer? Java Basics - Anfänger-Themen 4
M TextField Nullpointer Exc Java Basics - Anfänger-Themen 8
I Array - Nullpointer Ausnahme Java Basics - Anfänger-Themen 2
J NullPointer bei ArrayList.add Java Basics - Anfänger-Themen 6
C NullPointer Java Basics - Anfänger-Themen 3
D NullPointer bei ActionCommand in Array Java Basics - Anfänger-Themen 2
D Dubioser Nullpointer Java Basics - Anfänger-Themen 5
M Java3D TransformChanged nullpointer ??? Java Basics - Anfänger-Themen 2
X Nullpointer Fehler Java Basics - Anfänger-Themen 3
R Probleme mit NullPointer beim Mp3 abspielen (JMF) Java Basics - Anfänger-Themen 21
Antoras Nullpointer bei Wertübergabe Java Basics - Anfänger-Themen 10
Antoras Swing repaint und Nullpointer Java Basics - Anfänger-Themen 6
G NullPointer bei if anweisung Java Basics - Anfänger-Themen 14
Antoras NullPointer und Swing-Problem Java Basics - Anfänger-Themen 2
G (csv)Datei lesen FindBug findet mgl. NullPointer - wie lösen Java Basics - Anfänger-Themen 3
A g=panel.getGraphics() im Thread => Nullpointer Java Basics - Anfänger-Themen 9
T KeyListener, Nullpointer und eine unbekannte Variable Java Basics - Anfänger-Themen 6
E Fehler NullPointer beim Ausführen Java Basics - Anfänger-Themen 4
E nullpointer bei BufferedImage Java Basics - Anfänger-Themen 2
S Arrays und Nullpointer Java Basics - Anfänger-Themen 6
B NullPointer... Java Basics - Anfänger-Themen 6
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben