Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
14. Jun 2021
- Wähle das Menu Ansicht > Debug Fenster > Lokale Variablen.
Setze im Code an sinnvollen Stellen Breakpoints. Starte dein Programm. Dann siehst du sicher sofort, wo's noch nicht klappt.
- Wenn du in Funktionen auf den Rückgabewert Result zugreifen willst (beim Debuggen oft notwendig), musst du {$R+,Q+,X-} ersetzen durch {$R+,Q+}.
- In der Aufgabe steht: "FIELDSIZE für die Spielfeldbreite...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
12. Jun 2021
Hoi mo
genau... wenn du den Wert von Result abfragst, dann zeigt dein Delphi an
E2003 Undeklarierter Bezeichner: 'result'
Das liegt am Compilerschalter $X- ganz oben in deinem Code.
Nimm diesen Schalter raus. Wahrscheinlich wurde diese Übung im 7. Jahrhundert geschrieben und von Generation zu Generation weitergegeben.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
12. Jun 2021
Ja ich hab's gesehen. Wenn ich readInput auswerten will, dann will Delphi den Funktionswert berechnen und erwartet deshalb Parameter... (wenn ich mich nicht voll täusche, dann war das bei viel früheren Versionen nicht so - vielleicht ist auch irgend eine "doofe" Einstellung der Grund...).
Aber: Den Funktionswert solltest du auch in "Result" finden.
Tipp: Du kannst den Funktionswert auch...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
11. Jun 2021
Der Debugger hilft da schon sehr weiter.
Setze einen Breakpoint am Ende von readInput.
Starte das Programm. Wähle Spalte und Zeile und setze mit B eine Bombe.
Der Debugger hält nun am Ende von readInput an.
Jetzt kannst du weiter steppen mit Funktionstaste F8 und siehst, was passiert. (Deine Funktion readInput gibt offenbar false zurück.)
Nebenbei:
eingabeX := upcase(eingabeX); ...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
11. Jun 2021
Ich frage mich, wieso du das hier kompilieren kannst: eingabe := upcase(eingabe); ? Mein Delphi könnte das nicht ;-).
Wenn du in #1 deine Beschreibung von function readInput(var x, y: TSize; var cancel, bomb: Boolean): Boolean; liest, dann könnte man vermuten, dass die Benutzereingaben Spalte, Zeile etc. direkt IN der Funktion eingelesen werden sollten und nicht im Hauptprogramm. (Darauf...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
10. Jun 2021
Delphi erzeugt ausgehend von einem Zustand (integer Startwert) Pseudozufallszahlen nach einem festen Muster.
Mit randomize; erzeugst du einen pseudozufälligen Zustand/Startwert.
(Alternativ kannst du mit randseed := .. einen Startwert setzen.)
Mit random(x) kannst du danach Pseudozufallszahlen im Intervall erzeugen lassen.
Für deine Anwendung reicht es, wenn du genau einmal - zum...