Ich würde mich sehr freuen, wenn mir jemand helfen kann. Morgen schreiben wir Informatikarbeit, im Moment bearbeiten wir im Unterricht : Krümel und Monster
Ich hab gerade versucht, ein Schachbrett zu erstellen, dazu ein zweidimensionales 8*8 Feld erstellt und mit Hilfe einer anderen Klasse, die wir fertig bekommen haben, das ganze als kariertes Feld darzustellen.
Wenn ich auf "Compile" klick, kommt die Meldung, "compiled, no syntax errors".
Wenn ich dann aber versuche ein Objekt zu erstellen, dann kommt die Fehlermeldung "java.lang.NullPointerExecption: null" bezogen auf die Zeile "schachbrett[posX][posY].IstMauerSetzen(false);"
Vielen Dank für jede Hilfe, ich komm da im Moment leider selbst echt nicht weiter.
Jetzt funktioniert auch das Compilen nicht mehr ;C
Stattdessen kommt die Meldung
"constructor ZELLE in class ZELLE cannot be applied to given types;
requirde: int,int
found: no arguments
reason: actual and formal argument lists differ in length
The operator that you use here cannot be used for the type of value that you are using it for. You are either using the wrong type here, or the wrong operator."
bezogen auf
Java:
schachbrett[x][y]=newZELLE();
Aber ich hab doch eigentlich schon oben die Felder erzeugt mit
ja da irrst du dich! Mit dem geposteten Code erzeugst du ein Array, dass 8x8 Zellen aufnehmen kann, aber noch keine einzige Zelle hat. In Analogie zu einer Schublade sagst du dem Computer, gebe mir eine Schublade, die 8x8 Zellen aufnehmen kann...wenn du in die Schublade reingreifst, hast du 8x8 Fächer die aber alle leer sind...du musst sie halt noch mit Zellen füllen
Zum Vergleich die Klasse LABYRINTH (die haben wir in der Schule erstellt) . Hier funktioniert es, wenn ich bei der Methode GaengeErstellen die x und die y- Position angebe. Aber das müsste man doch eigentlich auch mit einer for-Schleife verallgemeinern können?
for(int i =0; i <8; i = i +2){
schachbrett[0][i].IstMauerSetzen(true);}
das sollte zumindest für eine Zeile funktionieren, ggf. true auf false setzen...aber eigentlich sollte das nach meinen Verständis mit true funktionieren...und dann musst du dir halt nochmal überlegen, wie man das geschickterweise auf alle Zeilen anwendet
Oh mann, das war jetzt eine schwere Geburt.
Es funktioniert endlich! Mein Fehler war, dass ich das mit dem Füllen der Felder nicht gemacht hatte und false statt true verwendet hab, ansonsten ist jetzt alles so, wie es war, bevor ich hier gepostet hab
Vielen Dank für deine große Hilfe!
Java:
publicclass SCHACHBRETT
{int breite;int hoehe;
ZELLE [][] schachbrett;publicSCHACHBRETT(){
breite =8;
hoehe =8;
schachbrett =new ZELLE [8][8];for(int y =0; y<8; y++){for(int x =0; x <8; x++){
schachbrett[x][y]=newZELLE(x,y);}}for(int y =0; y <8; y ++){for(int x=1; x<8; x=x+2){
schachbrett[x][y].IstMauerSetzen(true);}
y = y+1;for(int x=0; x<8; x=x+2){
schachbrett [x][y].IstMauerSetzen(true);}}}}