Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.320 Beiträge
 
Delphi 10.4 Sydney
 
#32

AW: zweidimensionale Arrays

  Alt 14. Jun 2021, 19:29
Mein Programm steht jetzt mittlerweile fast, jedoch habe ich zwei Probleme an denen ich fast verzweifel, zum einen sieht das Programm nach der zweiten Abfrage jedes Zeichen als gültig und deckt sofort auf ohne überhaupt die dritte Abfrage auszuführen, zum anderen markiert das Programm das ausgewählte Feld nicht mit einer Bombe sobald ich auf b drücke, sondern deckt sofort auf. Ich wäre echt über jede Hilfe dankbar.
Lies dir deine Aufgabenstellung noch einmal genau durch:

Das Spiel endet, wenn alle Zellen außer denen mit Bomben aufgedeckt wurden, wenn der Spieler eine Bombe "aufgedeckt" hat, wenn er eine Zelle fälschlicherweise als Bombe markiert hat oder wenn bei einer der Eingaben mit x/X das Spiel abgebrochen wurde.

Einen dritten Zustand "nicht aufgedeckt aber mit Bombe markiert" kannst du in deiner Datenstruktur nicht abbilden.
Dafür müsste z.B. visible[x, y] drei Zustände annehmen können (also nicht nur True oder False).
Diese Regel in der Aufgabenstellung vereinfacht ein wenig das Programm.

Deshalb auch bei der Ausgabe:
Delphi-Quellcode:
   if not visible[x, y] then
   begin
     {...zugedeckte Felder darstellen...}
   end
   else
   begin
     {...aufgedeckte Felder darstellen...}
     if field[x, y] = Bombe then
     begin
       s := 'ð';
       SetColor({...});
     end
     else {...usw...}
  Mit Zitat antworten Zitat