Informatik

Minesweeper

3. Erstelle die Klasse Spielfeld

alt text

Attribute

Deklariere alle Attribute.

Konstruktor

Programmiere den Konstruktor, in dem

  1. Die Attribute breite, hoehe und anzMinen initialisiert werden.
  2. Das Attribut kachel initialisiert wird. Die Zahl der kacheln berechnet sich aus dem Produkt der Spalten- und Zeilenzahl.
  3. Diese Schleife eingefügt wird:
    for (int i = 0; i < anzMinen; i++) {
         int nr = Random.randint(0, kachel.length - 1);
         while (kachel[nr] instanceof Mine) {
            nr = Random.randint(0, kachel.length - 1);
         }
         kachel[nr] = new Mine(this, getSpalte(nr), getZeile(nr), breite, hoehe);
      }
  1. Erläutere den Code dieser Schleife.
  2. Die Schleife erzeugt eine Fehlermeldung, da die Methoden getSpalte und getZeile noch nicht programmiert sind. Wir erstellen Sie jetzt mit folgender Vorüberlegung:
    alt text

Um von der orange markierten Index-Nummer auf die grün markierte Spalten- und die blau markierte Zeilen-Nummer zu kommen, verwenden wir Rechenregeln aus der Grundschule: ...
7 geteilt durch 5 ist 1 Rest 2.
8 geteilt durch 5 ist 1 Rest 3.
9 geteilt durch 5 ist 1 Rest 4.
10 geteilt durch 5 ist 2 Rest 0.
11 geteilt durch 5 ist 2 Rest 1.
...
Programmiere die Methoden getSpalte(int nr) und getZeile(int nr) mit Hilfe des Operators für die ganzzahlig Division / und den Rest dieser Divison % (Modulo-Operator).

Teste dein Programm - es müsste jetzt 10 Minen an zehn zufälligen Stellen des Spielfeldes erzeugen.

weiter