Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:projects:minesweeper:spielfeld:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
api:projects:minesweeper:spielfeld:start [2020/12/28 19:52] – angelegt Martin Pabstapi:projects:minesweeper:spielfeld:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 2: Zeile 2:
 [[../start|Zurück zur Hauptseite des Projekts Minesweeper]] \\ \\  [[../start|Zurück zur Hauptseite des Projekts Minesweeper]] \\ \\ 
  
-Ein Objekt der Klasse Spielfeld enthält viele Objekte der Klasse Zelle und stellt damit das gesamte Spielfeld im Grafikbereich dar.+Ein Objekt der Klasse Spielfeld enthält viele Objekte der Klasse Zelle und stellt damit das gesamte Spielfeld im Grafikbereich dar. Starte das Programm unten, decke mit der Maus verschiedene Zellen auf und entdecke - ausgehend von der Methode ''Zelle.onMouseUp'', welche Programmanweisungen nach dem Loslassen der Maustaste über einer Zelle ausgeführt werden.
  
 <HTML> <HTML>
 <div class="java-online" style="height: 620px; width: 100%" data-java-online="{'withBottomPanel': true, 'id': 'Zelle'}"> <div class="java-online" style="height: 620px; width: 100%" data-java-online="{'withBottomPanel': true, 'id': 'Zelle'}">
 <script type="text/plain" title="Spielfeld.java"> <script type="text/plain" title="Spielfeld.java">
 +Spielfeld sp = new Spielfeld(10, 15, 20);
 +sp.init();
 +
 +while(true);  // Endlos-Wiederholung, damit weiter Mausereignisse entgegengenommen werden
 +
 /** /**
  * Ein Objekt der Klasse Spielfeld enthält und verwaltet alle Zellen.  * Ein Objekt der Klasse Spielfeld enthält und verwaltet alle Zellen.
Zeile 16: Zeile 21:
    private int zeilen;          // Anzahl der Zeilen des Spielfelds    private int zeilen;          // Anzahl der Zeilen des Spielfelds
    private int minenAnzahl;     // Anzahl der vesteckten Minen    private int minenAnzahl;     // Anzahl der vesteckten Minen
-   private Minesweeper minesweeper;   // Das Spielfeld "kennt" das Minesweeper-Objekt und kann dessen öffentliche Methoden aufrufen. 
  
-   Spielfeld(int spalten, int zeilen, int minenAnzahl, Minesweeper minesweeper) {+   Spielfeld(int spalten, int zeilen, int minenAnzahl) {
       this.spalten = spalten;       this.spalten = spalten;
       this.zeilen = zeilen;       this.zeilen = zeilen;
-      this.minesweeper = minesweeper; 
       this.minenAnzahl = minenAnzahl;       this.minenAnzahl = minenAnzahl;
       zellen = new Zelle[spalten][zeilen];       zellen = new Zelle[spalten][zeilen];
Zeile 69: Zeile 72:
          }          }
       }       }
-   } 
- 
-   public Minesweeper getMinesweeper() { 
-      return minesweeper; 
    }    }
  
Zeile 167: Zeile 166:
     */     */
    public void setFahne(Zelle zelle) {    public void setFahne(Zelle zelle) {
-      if(minesweeper.getMinenCounter().getNumber() > 0) { 
          zelle.setZustand(zelle.getInhalt(), true, true);          zelle.setZustand(zelle.getInhalt(), true, true);
-         minesweeper.getMinenCounter().add(-1); 
-      } 
    }    }
  
Zeile 178: Zeile 174:
    public void löscheFahne(Zelle zelle) {    public void löscheFahne(Zelle zelle) {
       zelle.setZustand(zelle.getInhalt(), true, false);       zelle.setZustand(zelle.getInhalt(), true, false);
-      minesweeper.getMinenCounter().add(1); 
    }    }
  
Zeile 220: Zeile 215:
    }    }
  
-} +}</script> 
-</script>+
 <script type="text/plain" title="Zelle.java"> <script type="text/plain" title="Zelle.java">
 // Indizes der Sprites für die verschiedenen Zellbilder // Indizes der Sprites für die verschiedenen Zellbilder
Zeile 313: Zeile 308:
     */     */
    public void onMouseEnter(double x, double y) {    public void onMouseEnter(double x, double y) {
-      if(zugedeckt && getSpielZustand() == Zustand.spiel_läuft) {+      if(zugedeckt) {
          vordergrund.tint("#ff8080");          vordergrund.tint("#ff8080");
          getWorld().setCursor("pointer");          getWorld().setCursor("pointer");
Zeile 339: Zeile 334:
     */     */
    public void onMouseUp(double x, double y, int key) {    public void onMouseUp(double x, double y, int key) {
-      if(getSpielZustand() != Zustand.spiel_läuft) return; 
  
       if(key == 0) {  // linke Maustaste, also aufdecken       if(key == 0) {  // linke Maustaste, also aufdecken
Zeile 346: Zeile 340:
          if(inhalt == ZellBild.mine) {          if(inhalt == ZellBild.mine) {
             inhalt = ZellBild.mine_explodiert;             inhalt = ZellBild.mine_explodiert;
-            setZustand(inhalt, zugedecktfahne); +            setZustand(inhalt, falsefalse);
-            spielfeld.getMinesweeper().setZustand(Zustand.spiel_verloren);+
             return;             return;
          }          }
Zeile 360: Zeile 353:
             }             }
          }          }
-      } 
- 
-      // Spiel gewonnen? 
-      if(spielfeld.alleAufgedeckt()) { 
-         spielfeld.getMinesweeper().setZustand(Zustand.spiel_gewonnen); 
       }       }
                    
Zeile 373: Zeile 361:
    }    }
  
-   public Zustand getSpielZustand() { +
-      return spielfeld.getMinesweeper().getZustand(); +</script>
-   +
-}</script>+
 </div> </div>
 </HTML> </HTML>
api/projects/minesweeper/spielfeld/start.1609181571.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki