BlueJ - Hilfe bei for-Struktur

Riala

Mitglied
Hallo!

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.


Java:
public class SCHACHBRETT
{
int breite;
int hoehe;
ZELLE [][] schachbrett;


public SCHACHBRETT()
{
breite = 8;
hoehe = 8;
schachbrett = new ZELLE [8][8];

for (int y = 0; y <8; y= y+2)
{
int posY = 0;
int posX = 1;

for (int x= 1; x< 8; x=x+2)
{
schachbrett[posX][posY].IstMauerSetzen(false);
posX = posX + 2;

}
posX = 0;
posY = posY + 1;
for (int x= 0; x<8; x=x+2)
{
schachbrett [posX][posY].IstMauerSetzen(false);
posX= posX+2;
}
}
}
}



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.


Lg Riala
 

jgh

Top Contributor
da meinerEiner dein Code leider nicht kompilieren kann, weise ich dich nur auf einen Fehler hin:

Du erstelllst ein Array von [c]Zellen[/c] aber füllst dieses nicht. Daraus resultiert deine NPE!

und was diese Methode bei einem Schachbrett macht, ist imho nicht ersichtlich?

Java:
schachbrett[posX][posY].IstMauerSetzen(false);

[edit]so was in der Art fehlt dir noch in deinem Code...
Java:
for (int i=0;i<8;i++){
			for (int j = 0; j < 8; j++) {
				schachbrett[i][j]= new ZELLE();
			}
		}
[/edit]
 
Zuletzt bearbeitet:

Riala

Mitglied
Die Methode stammt aus der Klasse Zelle und bewirkt, dass das entsprechende Kastl mit einer Farbe gefüllt wird, so wie auch das Labyrinth in Pacman.

Aber wie meinst du das mit die Zellen füllen? Kannst du mir das bitte erklären?

Das heißt also, ich könnte die Zähler x und y, bzw. i und j auch als Bezeichner der Felder hernehmen?


Lg Riala
 

Riala

Mitglied
siehe mein edit in der ersten Antwort, sowas in der Art halt...

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] = new ZELLE();

Aber ich hab doch eigentlich schon oben die Felder erzeugt mit

Java:
 schachbrett = new ZELLE [8][8];
oder irre ich mich da?


Lg Riala
 

jgh

Top Contributor
dann versuche es mal in der Zeile mit:
Java:
schachbrett[i][j]= new ZELLE(i,j);

...
bezogen auf
Java:
schachbrett[x][y] = new ZELLE();

Aber ich hab doch eigentlich schon oben die Felder erzeugt mit

Java:
 schachbrett = new ZELLE [8][8];
oder irre ich mich da?

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
 

Riala

Mitglied
Ok, ich hab jetzt nochmal das ganze mit dem Farbe (= Mauer) setzen raus.

Java:
public class SCHACHBRETT
{
    int breite;
    int hoehe;
    ZELLE [][] schachbrett;
    
    
    public SCHACHBRETT()
    {
        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] = new ZELLE(x,y);
        
            }
        }
    }
    
    
}

vielen Dank, jetzt hab ich auf jeden Fall schon mal ein angezeigtes 8*8 Feld :)


Jetzt muss ich bloß noch irgendwie diese IstMauerSetzen auf die Hälfte der Felder anwende, sodass das ganze dann kariert ist.



Lg Riala
 

Riala

Mitglied
Ok, ich hab das ganze jetzt wieder eingefügt, er meckert nicht mehr.

meine Klasse SCHACHBRETT schaut jetzt so aus. Er erzeugt zwar brav ein sichtbares 8*8-Feld, aber das mit den Karos funktioniert leider noch nicht.
Java:
public class SCHACHBRETT
{
    int breite;
    int hoehe;
    ZELLE [][] schachbrett;
    
    
    public SCHACHBRETT()
    {
        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] = new ZELLE(x,y);
        
            }
        }
        
        
        for (int y = 0; y <8; y= y+2)
           {
               int posY = 0;
               int posX = 1;
 
               for (int x= 1; x< 8; x=x+2)
               {
                   schachbrett[posX][posY].IstMauerSetzen(false);
                   posX = posX + 2;
 
                }
                posX = 0;
                posY = posY + 1;
                for (int x= 0; x<8; x=x+2)
                {
                    schachbrett [posX][posY].IstMauerSetzen(false);
                    posX= posX+2;
                }
            }
        }    
}


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?
Java:
public class LABYRINTH
{
    int breite;
    int hoehe;
    ZELLE[][] spielFlaeche;
    
    public LABYRINTH(int breiteNeu, int hoeheNeu)
    {   
        breite = breiteNeu;
        hoehe = hoeheNeu;
        spielFlaeche = new ZELLE[breite][hoehe];
        
        for (int zaehlerY = 0; zaehlerY < hoehe ; zaehlerY++)
        {
            for (int zaehlerX = 0; zaehlerX < breite ; zaehlerX++)
            {
                spielFlaeche[zaehlerX][zaehlerY] = new ZELLE(zaehlerX, zaehlerY);
        
            }
        }
    
    }
    
    public void GaengeErstellen(int xpos, int ypos)
    {
        spielFlaeche[xpos][ypos].IstMauerSetzen(false);
    }
    
}



Lg Riala
 

jgh

Top Contributor
versuche es mal so...
Java:
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 ;)
 

Riala

Mitglied
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 :oops:


Vielen Dank für deine große Hilfe!


Java:
public class SCHACHBRETT
{
    int breite;
    int hoehe;
    ZELLE [][] schachbrett;
    
    
    public SCHACHBRETT()
    {
        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] = new ZELLE(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);
                 
                }
            }
        }
          
}



GLg Riala
 

AquaBall

Top Contributor
Nur der Vollständigkeit halber:
Gewöhn dir von Anfang an die korrekte Schreibweisen an:

MEINE_KONSTANTEN / MeineClassen / meineMethoden

LABYRINTH, ZELLE ist "falsch" => Labyrinth
IstMauerSetzen ist "falsch" => istMauerSetzen
(OK, Der Compiler bemängelts nicht; Eclipse würde dich schon daruaf hinweisen.)

Du tust dich dann viel leichter auch andere Programm zu verstehen, und machst Anderen die Lesbarkeit deiner Programme leichter.

PS: Nein, jgh, nicht du bist gemeint, sondern TO! ;)
 
T

thed4rkmark

Gast
Könntest du vielleicht die klasse Zelle noch mal hier hinzufügen, muss das jetzt auch in der schuzle machen
danke :p
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
H Klassen Hilfe bei BlueJ, Supermario Java Basics - Anfänger-Themen 5
E Hilfe bei Lambda-Ausdrücken in BlueJ Java Basics - Anfänger-Themen 1
P Java mit BlueJ - Hilfe - Gegenstände Java Basics - Anfänger-Themen 10
S Erste Schritte BlueJ-Aufgabe: Programmcode / Brauche dringend Hilfe !!! Java Basics - Anfänger-Themen 37
X Methoden Java Dublikatsuche Hilfe(BlueJ) Java Basics - Anfänger-Themen 9
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
W Pfeilenformen im BlueJ Java Basics - Anfänger-Themen 9
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
Vernon.098 Java (BlueJ) Mensch ärgere dich nicht Programmien Java Basics - Anfänger-Themen 6
momo96 bluej Java Basics - Anfänger-Themen 2
K BlueJ Ball an Rand Reflektieren Java Basics - Anfänger-Themen 2
YAZZ BlueJ Bewegung einer Figur im Kreis Java Basics - Anfänger-Themen 4
Delonyg Bluej Supermarkt Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
N BlueJ Implementation Analoguhr Java Basics - Anfänger-Themen 33
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
C Projekt öffnen BlueJ Java Basics - Anfänger-Themen 1
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
K Testen in BlueJ Java Basics - Anfänger-Themen 2
C BlueJ Zahlenschloss programmieren Java Basics - Anfänger-Themen 5
1 BlueJ Fehler ? Java Basics - Anfänger-Themen 7
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
D BlueJ Java: Strings voneinander trennen Java Basics - Anfänger-Themen 11
V ToString-Methode mit JUnit testen(BlueJ) Java Basics - Anfänger-Themen 10
G Variablen Variable nimmt keinen Wert an (BlueJ) Java Basics - Anfänger-Themen 4
I BlueJ importdatei fehlt Java Basics - Anfänger-Themen 4
D Java BlueJ Programm wiederholen? Java Basics - Anfänger-Themen 6
J Uniprojekt (BlueJ) Java Basics - Anfänger-Themen 17
W Testmethoden in BlueJ Java Basics - Anfänger-Themen 12
F Java BlueJ Dinge verschwinden lassen Java Basics - Anfänger-Themen 2
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
J BlueJ und import-Anweisungen, wie geht das? Java Basics - Anfänger-Themen 4
K BlueJ Terminverwaltung erstellen Java Basics - Anfänger-Themen 1
J BlueJ - kompilieren - und wie weit kommt man mit BlueJ? Java Basics - Anfänger-Themen 4
J Thread erstellen (BlueJ Projekt) Java Basics - Anfänger-Themen 3
I Erste Schritte BlueJ Fehler Java Basics - Anfänger-Themen 8
C Manuelle Parametereingabe in BlueJ Java Basics - Anfänger-Themen 5
D Wer wird Millionär ? BlueJ Java Java Basics - Anfänger-Themen 2
P BlueJ Sieb des Eratothenes Java Basics - Anfänger-Themen 4
M Ausgeben eines 2D Arrays mit int UND String werten - BLUEJ! Java Basics - Anfänger-Themen 4
G BlueJ Stacks Bahnhof Java Basics - Anfänger-Themen 2
J BlueJ öffnet package falsch Java Basics - Anfänger-Themen 2
J BlueJ Liste Würfel Projekt Java Basics - Anfänger-Themen 2
H BlueJ Java Basics - Anfänger-Themen 3
L Queue programmieren via BlueJ Java Basics - Anfänger-Themen 5
R Nach Ubuntu-Update: Konsole spuckt bei neu Kompilierten Programmen Fehler aus (BlueJ)(Ubuntu12.04) Java Basics - Anfänger-Themen 11
X Erste Schritte Java BlueJ Programmieren Java Basics - Anfänger-Themen 36
Tally Methoden BlueJ - Datum als Kalendertag int - tagImJahr Java Basics - Anfänger-Themen 6
J BlueJ canvas Buttons adden? Java Basics - Anfänger-Themen 2
J BlueJ Tic Tac Toe öffnen? Java Basics - Anfänger-Themen 6
T Erste Schritte BlueJ kapitel 4 frage Schleifen ? Java Basics - Anfänger-Themen 4
V BlueJ: Funktionierende .jar Datei erstellen Java Basics - Anfänger-Themen 2
G Methoden BlueJ SuM Methode wird nicht gefunden Java Basics - Anfänger-Themen 9
S Pakete in BlueJ Java Basics - Anfänger-Themen 5
T Snake-BlueJ Bewegung Java Basics - Anfänger-Themen 7
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
T Snake mit Bluej Java Basics - Anfänger-Themen 8
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
P Java BlueJ Schatzsuche Java Basics - Anfänger-Themen 2
H Erste Schritte von BlueJ zu Eclipse Java Basics - Anfänger-Themen 10
I Rc4 Verschlüsselung in BlueJ Java Basics - Anfänger-Themen 18
H Buch: Java lernen mit BlueJ Modulo-Operator Java Basics - Anfänger-Themen 16
X Interpreter-Fehler "java.lang.NullPionterException: null" bei BlueJ Java Basics - Anfänger-Themen 10
C Problem bei BlueJ - Pfeil bleibt nicht in der Dartscheibe stecken Java Basics - Anfänger-Themen 4
M mit BlueJ einen Ticketautomaten programmieren Java Basics - Anfänger-Themen 9
Binary.Coder Bluej ähnlicher Inspektor gesucht Java Basics - Anfänger-Themen 3
T problem mit der maus in BlueJ Java Basics - Anfänger-Themen 14
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
R BlueJ Pacman Java Basics - Anfänger-Themen 17
B BlueJ Turtle nicht gefunden Java Basics - Anfänger-Themen 6
J start(); bei bluej Java Basics - Anfänger-Themen 3
E BlueJ Projekt öffnen Java Basics - Anfänger-Themen 15
Jats Probleme mit BlueJ und Bankkonto-Methoden Java Basics - Anfänger-Themen 7
A BlueJ BMI berechnen Java Basics - Anfänger-Themen 9
D BlueJ Anzeigeproblem Java Basics - Anfänger-Themen 5
L String Variable zurückgeben mit BlueJ Java Basics - Anfänger-Themen 12
J BlueJ Zeichen, Dart-Pfeil Java Basics - Anfänger-Themen 59
B Paket in BlueJ einfügen Java Basics - Anfänger-Themen 5
C BlueJ zum Laufen bekommen Java Basics - Anfänger-Themen 14
M BlueJ Problem Java Basics - Anfänger-Themen 6
P BlueJ hängt sich beim compilen auf Java Basics - Anfänger-Themen 9
P BlueJ Fehlermeldung - Illegal Start of Type Java Basics - Anfänger-Themen 8
S Klasse Zeichenfenster und BlueJ - Könnt ihr mir helfen? Java Basics - Anfänger-Themen 4
A Datentyp Char wird in BlueJ nur als leerer weißer Kasten dargestellt Java Basics - Anfänger-Themen 1
A JButton erscheint nicht (BlueJ) Java Basics - Anfänger-Themen 2
E BlueJ und Zeichenketten. S83 Übung 2.72 Java Basics - Anfänger-Themen 3
H BlueJ mehrere Klassen Java Basics - Anfänger-Themen 6
Binary.Coder Wechsel von BlueJ zu Eclipse Java Basics - Anfänger-Themen 7
G BlueJ jUnit Test Java Basics - Anfänger-Themen 6
G Klassenhierarchie in BlueJ. Java Basics - Anfänger-Themen 3
G BLueJ Aufgabe Java Basics - Anfänger-Themen 11
G Bluej startet nicht Java Basics - Anfänger-Themen 5
B BlueJ: Anfängerprojekt mit HashMap Java Basics - Anfänger-Themen 14
D String - BlueJ Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben