Java: geschachtelte For-Schleife oder Logikproblem

Dieses Thema: "Java: geschachtelte For-Schleife oder Logikproblem" im Forum "Java/Mono/dotGNU" wurde erstellt von Der_Da_93, 21.09.2008.

  1. #1 Der_Da_93, 21.09.2008
    Zuletzt bearbeitet: 21.09.2008
    Der_Da_93

    Der_Da_93 irgendwie

    Dabei seit:
    01.06.2007
    Beiträge:
    152
    Zustimmungen:
    0
    Ort:
    127.0.0.1
    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 ?
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 21.09.2008
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    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

    hab ich nämlich keine Ahnung was du nun willst, bzw. wo dein Problem ist.
     
  4. #3 Der_Da_93, 21.09.2008
    Der_Da_93

    Der_Da_93 irgendwie

    Dabei seit:
    01.06.2007
    Beiträge:
    152
    Zustimmungen:
    0
    Ort:
    127.0.0.1
    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.

    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
     
  5. #4 bytepool, 22.09.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    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
     
  6. #5 supersucker, 22.09.2008
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Ganz genau...:D

    Das hier lesen kann nie schaden:

    -> http://java.sun.com/docs/codeconv/CodeConventions.pdf

    Zu deinem Problem hat ja bytepool schon geantwortet......
     
  7. #6 Der_Da_93, 22.09.2008
    Der_Da_93

    Der_Da_93 irgendwie

    Dabei seit:
    01.06.2007
    Beiträge:
    152
    Zustimmungen:
    0
    Ort:
    127.0.0.1
    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. ?
     
  8. #7 Der_Da_93, 24.09.2008
    Der_Da_93

    Der_Da_93 irgendwie

    Dabei seit:
    01.06.2007
    Beiträge:
    152
    Zustimmungen:
    0
    Ort:
    127.0.0.1
    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)
     
  9. #8 saeckereier, 24.09.2008
    Zuletzt bearbeitet: 24.09.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    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.
     
  10. #9 Der_Da_93, 24.09.2008
    Der_Da_93

    Der_Da_93 irgendwie

    Dabei seit:
    01.06.2007
    Beiträge:
    152
    Zustimmungen:
    0
    Ort:
    127.0.0.1
    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....
     
Thema:

Java: geschachtelte For-Schleife oder Logikproblem

Die Seite wird geladen...

Java: geschachtelte For-Schleife oder Logikproblem - Ähnliche Themen

  1. Werkstudent/ in als Mobile -Entwickler für Android (Java)

    Werkstudent/ in als Mobile -Entwickler für Android (Java): Werkstudent/ in als Mobile -Entwickler für Android (Java) Die DiOmega GmbH ist eine Agentur mit Sitz in Frankfurt am Main, die sich auf IT- und...
  2. Mobile -Entwickler für Android (Java) in Vollzeit (m/w)

    Mobile -Entwickler für Android (Java) in Vollzeit (m/w): Mobile -Entwickler für Android (Java) in Vollzeit (m/w) Die DiOmega GmbH ist eine Agentur mit Sitz in Frankfurt am Main, die sich auf IT- und...
  3. Java-Entwickler in Vollzeit (m/w)

    Java-Entwickler in Vollzeit (m/w): Java-Entwickler in Vollzeit (m/w) Die DiOmega GmbH ist eine Agentur mit Sitz in Frankfurt am Main, die sich auf IT- und Web-Dienstleistungen...
  4. iJUG: Sorge um JavaFX

    iJUG: Sorge um JavaFX: Für den iJUG mehren sich die Anzeichen, dass JavaFX keine große Zukunft mehr bei Oracle hat. So wurde die Unterstützung für die Version 8u33 von...
  5. Java-Anwendungsserver: WildFly 10 freigegeben

    Java-Anwendungsserver: WildFly 10 freigegeben: Der Java-Anwendungsserver WildFly ist in Version 10 erschienen. Die neue Version ist nur noch für Java 8 und 9 ausgelegt und kann unter anderem...