Java: geschachtelte For-Schleife oder Logikproblem

Der_Da_93

Der_Da_93

irgendwie
Hi,
Ich grüble gerade über ein Problem bei dem ich einfach nicht dahinterkomme.
Der Code ist ein Ausschnitt aus meinem TicTacToe-Programm.
Code:
		/*Check for horizontal rows */
		for(short x=0; x<2; x++){
			for( short y=0; y<2; y++){
				sum += stones[x][y];
			}
			if( (sum == 3) || (sum== 12)){
				System.out.println("so");
				return true;
			}
			else {sum =0;}
			
		}

Und soll eben schauen, ob es 3 steine in einer horizontalen reihe gibt.
stones[][] ist ein 2D-Array mit jeweils 3 Elementen.
0 bedeutet das Feld ist leer.
1 bedeutet blauer Stein.
4 bedeutet roter Stein.

Irgendwie steh ich auf dem Schlauch.

Könnte mir jemand helfen ?
 
Zuletzt bearbeitet:
Huaaa,

bei so einem Code

Code:
	for(short x=0; x<2; x++){
			for( short y=0; y<2; y++){
				sum += stones[x][y];
			}
			if( (sum == 3) || (sum== 12)){
				System.out.println("so");
				return true;
			}
			else {sum =0;}
			
		}

stellen sich ja einem die Nackenhaare hoch.

Vielleicht postest du mal lieber die gesamte Methode / Klasse, aus deiner Beschreibung heraus

Und soll eben schauen, ob es 3 steine in einer horizontalen reihe gibt.
stones[][] ist ein 2D-Array mit jeweils 3 Elementen.
0 bedeutet das Feld ist leer.
1 bedeutet blauer Stein.
4 bedeutet roter Stein.

Irgendwie steh ich auf dem Schlauch.

hab ich nämlich keine Ahnung was du nun willst, bzw. wo dein Problem ist.
 
Hi Supersucker, danke für deine Antwort.

Also irgendwie hab ich wohl n brett vorm kopf(muss wohl an der erkältung liegen).
Was nicht funktionieren tut:
die Methode isWon() gibt immer false zurück, auch wenn das stones-array mit einer vertikalen reihe belegt ist.

Huaaa,
bei so einem Code [...] stellen sich ja einem die Nackenhaare hoch.

Tja, mein erstes "richtiges" Java-Projekt. Wenns fertig geworden wäre, hätte ich's sowieso für ein paar Verbesserungsvorschläge gepostet.

Wär nett, wenn du mir noch erklären könntest was daran so schlimm ist, bzw. wie man's besser macht.

Der Code:
Main.java
Gui.java
Field.java
 
Hi,

dir ist schon klar dass deine for Schleifen ein Feld der groesse 2x2 abarbeiten? Das sollte auch schon das Problem sein, die if Abfrage kann nie wahr sein, gegeben dass die Zellen nur 0, 1 und 4 enthalten koennen.

supersucker meint mit Sicherheit die sehr eigenartige Formatierung von deinem Code. Auch wuerde ich persoenlich x und y nicht als Zaehlvariablen benutzen, sondern lieber i und j, aber das ist Geschmacksache.

mfg,
bytepool
 
Danke.
War ja mal wieder ne sehr simple Lösung.
(Also ein typisches Der_Da_93-Problem):-)

Werde ich vlt. heut abend(falls ich zeit hab, das programm korrigieren).
Falls es dann noch fragen geben sollte, werde ich mich natürlich melden.

Gibt es sonst noch irgendwelche Verbesserungsvorschläge an meinem Code,
ich meine jetzt nicht nur Layout-technisch, sondern auch so Sachen, wie , gute Abbildung in Klassen, Methoden etc. ?
 
Wieder ein kleines Problemchen, aber wahrscheinlich stehe ich nur auf dem Schlauch.

meine Gui() Klasse besitzt inzwischen bestimmte Methoden z.B. setRedWon() o.ä.
Das Problem ist, dass ich diese,aus Methoden der Main heraus, nicht aufrufen kann. ( in der public static int main() wird die Gui() allerdings instanziert.

Also so:
Main.main() macht: Gui g = new Gui()
g.ruft über MouseListener Main.FieldClicked auf
FieldClicked, soll jetzt g.setRedWon() aufrufen, was allerdings nicht so funktioniert.

*nicht funktionieren heisst: g cannot be resolved ( was das heisst hab ich schon verstanden)
 
Womit programmierst du?
Nimm Eclipse, dann kommst du nicht auf die Idee nicht vorhandene Variablen zu benutzen..
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Und mit so wenig Code kann man praktisch nix dazu sagen ausser dass die Variable g in dem Kontext nicht existiert.
 
Zuletzt bearbeitet:
Ok, ich hab das Problem gefunden g wurde in Main.main() deklariert, und nicht in Main global.
Eigentlich hätte ich ja selbst draufkommen können....
 

Ähnliche Themen

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

syntax error. Warum?

for each schleife und arrays

Ausgabe in *.txt Datei & Struct

Java-Programmier-Problem

Zurück
Oben