Vier Gewinnt, hilfe beim code

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Vier Gewinnt, hilfe beim code

    Hallo,

    Hab volgendes Problem. Habe den Code hier im Forum gefunden...

    Bin Neuling und am Anfang meines Studiums. War auf der Suche nach ner kleiner Aufgabe und würde es selber gerne nachprogrammieren.

    Meine Frage bezieht sich nun auf die Gewinnerüberprüfung und das Zeichnen des Feldes.

    Undzwar verstehe ich nicht ganz wie die Abfragen funktionieren bzw die einzelnen Schritte.







    Vier gewinnt





    Alle 8 Methoden gehen gleich vor... aber es hat noch nicht klick gemacht...



    Würde sich evtl Jmd. hier die mühe machen und mir erklären was genau hier vorgeht?







    Quellcode

    1. static boolean GameIsOver_row(char[][] spielfeld, int column, int row, char zeichen) { // nach links
    2. int go = row - 1; // mit dem Punkt links neber dem gesetzten beginne
    3. // ich
    4. int i = 1; // der gesetzte Punkt = 1 Treffer
    5. while (go >= 0) {
    6. if (spielfeld[column][go] != zeichen)
    7. break;
    8. go--;
    9. i++;
    10. }
    Alles anzeigen








    Das zweite Problem stckt im zeichnen des Feldes







    Quellcode

    1. /**
    2. * Zeigt das komplette Spielfeld auf dem Bildschirm
    3. * @param spielfeld -> Das Spielfeld mit allen ben?tigten Daten
    4. */
    5. static void showSpielfeld(char[][] spielfeld) {
    6. StringBuffer Geruest = new StringBuffer();
    7. StringBuffer row_start = new StringBuffer(" "); // erste Zeile 1 2 3 4
    8. StringBuffer row_divide = new StringBuffer("|"); // Trennzeile |-----|
    9. StringBuffer row_end = new StringBuffer("-"); // letzte Zeile -------
    10. if (spielfeld[0].length > 9) {
    11. for (int i = 1; i <= spielfeld[0].length; i++)
    12. row_start.append((i/10==0) ? " " : i/10).append(" ");
    13. row_start.append("\n ");
    14. }
    15. for (int i = 1; i <= spielfeld[0].length; i++) {
    16. row_start.append(i%10).append(" ");
    17. row_divide.append((i==spielfeld[0].length)? "-|" : "--");
    18. row_end.append("--");
    19. }
    20. System.out.println(row_start);
    21. System.out.println(row_divide);
    22. for (char[] arrZeile : spielfeld) { //iteriere durch alle Zeilen
    23. for (char arrSpalte : arrZeile) { //iteriere durch alle Spalten
    24. Geruest.append("|");
    25. Geruest.append((arrSpalte == '\0') ? ' ' : arrSpalte);
    26. }
    27. Geruest.append("|\n");
    28. }
    29. Geruest.append(row_end).append("\n");
    30. System.out.println(Geruest);
    31. }
    32. }
    Alles anzeigen








    Was genau passiert in diesem Teil des Programms ? Denn ich kann selber angeben wie groß das Feld in Länge und Breite seine soll. Aber wo kommen diese Parameter hier ins Spiel?



    Hoffe jmd kann mir das etwas erklären.





    MfG Edwin
  • Auch wenn der Beitrag schon älter ist.

    Die Parameter kommen durch den Aufruf "in die Funktion". Bsp: Die Funktion
    static void showSpielfeld(char[][] spielfeld) {


    Der Aufruf -->

    Quellcode

    1. YourClass.showSpielfeld(charArray[][]);


    Zu deiner 1. Frage, willst du wirklich jeden einzelnen Schritt erklär haben ?