Arbeitsblatt zur Methode UMC –

Use, Modify & Create

Foto vom Spiel Vier gewinnt aus Wikipedia, Urheber: Popperipopp lizensiert unter der Creative-Commons-Lizenz „Namensnennung 3.0 nicht portiert“.
2 1 1 0 0 2 2
1 1 2 0 2 1 2
2 2 2 1 2 1 1
1 2 1 2 1 1 2
2 1 2 1 1 2 2
1 1 2 2 1 1 2

Oben stehendes Drei(!) Gewinnt-Spielfeld ist in folgendem Programmcode enthalten:

    public class DreiGewinnt {

      static int[][] feld = new int[7][6];

      static int gewonnen() {
        for (int y = 0; y <= 5; y++) {
          for (int x = 0; x <= 4; x++) {
            int s = feld[x][y];
            if (s != 0 && s == feld[x + 1][y] && s == feld[x + 2][y]) {
              return s;
            }
          }
        }
        return 0;
      };

      public static void main(String[] args) {
      
        String[] zeile = new String[6];

        zeile[5]="2110022";
        zeile[4]="1120212";
        zeile[3]="2221211";
        zeile[2]="1212112";
        zeile[1]="2121122";
        zeile[0]="1122112";

        for (int y = 0; y <= 5; y++) {
          for (int x = 0; x <= 6; x++) {
            if (zeile[y].charAt(x) == '0') {
              feld[x][y] = 0;
            }
            if (zeile[y].charAt(x) == '1') {
              feld[x][y] = 1;
            }
            if (zeile[y].charAt(x) == '2') {
              feld[x][y] = 2;
            }
          }
        }
        System.out.println(gewonnen());
      }

    }
  1. Use
    • Führe den Programmcode aus und erkläre, warum die letzte (und einzige) Ausgabe 2 ist.
    • Ergänze Kommentare zu den Zeilen, deren Funktion dir zum jetzigen Zeitpunkt bereits klar ist.
  1. Modify
    • Verändere in der main-Methode das Spielfeld so, dass die Ausgabe
      1. 1 oder
      2. 0 ist.
    • Erkläre bezüglich des Spielverlaufs, was diese Ausgaben bedeuten.
    • Verändere das Spielfeld so, dass (unrealistischerweise) die oberste Zeile 1110222 lautet. Erkläre anhand des Programmcodes, warum die Ausgabe bei 2 bleibt.
    • Kommentiere nun auch die Zeilen, deren Funktion du dir bei Aufgabe 1 noch nicht erschließen konntest.
    • Verändere die Methode gewonnen() so, dass aus diesem Drei Gewinnt ein (übliches) Vier Gewinnt wird.
  1. Create
    • Füge in die Methode gewonnen() eine so genannte Vertikalprüfung hinzu. Das heißt, dass auch Vierer in einer Spalte erkannt werden sollen.