[Java] Gomoku | Fünf in eine Reihe | [ohne GUI]

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von xmischax, 29. Dezember 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 29. Dezember 2008
    Gomoku | Fünf in eine Reihe | [ohne GUI]

    Hallo,

    ich bin im erstem Semester in Software Engineering und muss über die Ferien ein Programm namens Gomoko programmieren, welches man ohne GUI bedienen kann sprich in Konsole.
    http://de.wikipedia.org/wiki/F%C3%BCnf_in_eine_Reihe

    Ich habs nur geschafft die leere Matrix zu erstellen und mir fehlen die Ideen wie ich das meistern soll :( .

    Könntet ihr mir helfen und mir erklären wie ich des machen sollte ?

    Code:
    public class Gomoko {
     
     private static int brettgroesse;
     
     public static void main(String[] args) throws Exception {
     
     
     
     
     do{
     brettgroesse= IO.readInt("Zahl(8-20): ");
     }while(brettgroesse<8 || brettgroesse>20);
     
     
     char [][] spielbrett= new char[brettgroesse][brettgroesse]; 
     
     for (int i =0;i<brettgroesse;i++){ 
     for(int j=0;j<brettgroesse;j++){
     spielbrett[i][j]="_".charAt(0);
     }
     } 
     
     for (int i =0;i<brettgroesse;i++){ 
     for(int k =0;k<brettgroesse;k++){
     System.out.print("("+k+")");
     }
     System.out.print(i+": ");
     
     for(int j=0;j<brettgroesse;j++){
     System.out.print(spielbrett[i][j]);
     
     }
     System.out.println();
     }
     
     
     
     }
     }
    
    Ausgabe:
    Zahl(8-20):
    8
    (0)(1)(2)(3)(4)(5)(6)(7)0: ________
    (0)(1)(2)(3)(4)(5)(6)(7)1: ________
    (0)(1)(2)(3)(4)(5)(6)(7)2: ________
    (0)(1)(2)(3)(4)(5)(6)(7)3: ________
    (0)(1)(2)(3)(4)(5)(6)(7)4: ________
    (0)(1)(2)(3)(4)(5)(6)(7)5: ________
    (0)(1)(2)(3)(4)(5)(6)(7)6: ________
    (0)(1)(2)(3)(4)(5)(6)(7)7: ________

    Ich weiss des Programm ist schlecht lesbar bzw. ohne Kommentar, aber ich brauch nur Ideen wie ihr es machen würdet :] .
     

  2. Anzeige
  3. #2 30. Dezember 2008
    AW: Gomoku | Fünf in eine Reihe | [ohne GUI]

    So wie ich das verstanden habe, muss man bei dem Spiel ja nur einzelne Felder besetzen. Ich würde das Spielfeld daher folgendermaßen gestalten:

    0 1 2 3 4
    1 0 0 0 0
    2 0 0 0 0
    3 0 0 0 0

    Nur dann halt größer. Die äußeren Zahlen dienen zur Orientierung.

    Dann wird als eingabe die Koordinate erwartet, z.B. so: 2/3
    ...und als Reaktion dann das Zeichen des Spielers dorthin gesetzt:

    0 1 2 3 4
    1 0 0 0 0
    2 0 0 0 0
    3 0 + 0 0

    Chillikid

    // Hier im Forum sieht das mit dem Spielfeld leider etwas verschoben aus, aber da die Win-Konsole ja blockschrift benutzt sollte das kein Problem darstellen.
     
  4. #3 31. Dezember 2008
    AW: Gomoku | Fünf in eine Reihe | [ohne GUI]

    wenn du das ganze mit java programmierst würde ich mir eine klasse für die ein Feld machen, da könnte man dan methoden festlegen in dem man den Besitz dieses Feldes einen spielern zuordnen kann oder auch die überprüfung ob 5 in einer reiher liegen.
    Bei einem korrekten algorithmus kann man ja davon ausgehen dass der letzte stein in dieser Reihe liegen muss also nur seine nachbarn überprüfen.
     
  5. #4 31. Dezember 2008
    AW: Gomoku | Fünf in eine Reihe | [ohne GUI]

    @ chillkid ja das werde ich machen :)
    @korona also ich soll also ne neue klasse feld machen?
    wie überprüfe ich die nachbarn, muss ja auch über die diagonale funktionieren.

    Und soll ich die Matrix immer wieder neu ausgeben oder wie soll ich das machen damit diese sich immer wieder "aktualisiert" nach einer Eingabe von den Spielern.
     
  6. #5 31. Dezember 2008
    AW: Gomoku | Fünf in eine Reihe | [ohne GUI]

    Ich meine das man bei Java ja keine Möglichkeit hat, die Konsole zu löschen, daher würde ich das Feld immer wieder neu mit ~20 Leerzeilen davor ausgeben, so dass man immer nur eine Version des Feldes sehen kann!

    Zur Überprüfung auf Gewinn:

    Du machst eines Schleife, die einmal über jedes besetzte Feld geht. In der Schleife machst du die folgenden 4 Schritte:
    1. Überprüfung Horizontal, also es werden max. 4 schritte nach rechts und links des Feldes gegangen und zwar auch nur so lange, wie sich dort ein gleichfarbiger Stein befindet. Beispiel:

    0 + + + + 0 0 +

    Es werden 2 Schritte nach links gegangen, und einer nach rechts. Weiter brauch man nicht gehen, da darüberhinaus kein Gewinn möglich ist. Jetzt muss man nur noch zusammenzählen und merkt, dass 2+ 1 +1 leider noch nicht 5 ergibt -> kein gewinn hier.

    2. Dasselbe für vertikal
    3. Dasselbe für schräg von links oben
    4. ...und von rechts oben
     

  7. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Java Gomoku Fünf
  1. Antworten:
    0
    Aufrufe:
    3.566
  2. Antworten:
    6
    Aufrufe:
    2.817
  3. Antworten:
    2
    Aufrufe:
    878
  4. Antworten:
    4
    Aufrufe:
    472
  5. Antworten:
    0
    Aufrufe:
    877