Also erstmal macht man sich Gedanken darüber, was man denn eigentlich machen muss.
- Abfrage der Runden-Anzahl (liefert die Anzahl zurück)
- Erstellen einer Aufgabe (Liefert die Aufgabe und die richtige Lösung zurück)
- Ausgabe und Abfrage der Lösung (Liefert zurück, ob die Antwort richtig war)
- Ausgabe des Ergebnisses
- Die einzelnen Teile für das Spiel sinnvoll zusammensetzen
In Delphi übersetzt kommt dann sowas dabei heraus:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils;
function FrageAnzahlRunden : Integer;
begin
// ToDo
Result := 1;
// Achtung, liefert aktuell immer nur 1 zurück
end;
procedure AufgabeErstellen(
out Frage, Loesung :
string );
begin
// ToDo
Frage := '
';
Loesung := '
';
end;
function AufgabeAbfragen(
const Frage, Loesung :
string ) : Boolean;
begin
Result := False;
// Achtung, liefert aktuell immer nur False (nicht gelöst) zurück
// ToDo
end;
procedure ZeigeErgebnis( RichtigBeantwortet, AnzahlFragen : Integer );
begin
WriteLn( '
Du hast ', RichtigBeantwortet, '
Fragen von ', AnzahlFragen, '
richtig beantwortet!' );
end;
procedure Spiel;
var
LRundenAnzahl : Integer;
// Anzahl der Runden
LRunde : Integer;
// aktuelle Runde
LFrage :
string;
// aktuelle Frage
LLoesung :
string;
// Lösung zur aktuellen Frage
LRichtigZaehler : Integer;
// Zähler der richtigen Antworten
begin
LRichtigZaehler := 0;
LRundenAnzahl := FrageAnzahlRunden;
for LRunde := 1
to LRundenAnzahl
do
begin
AufgabeErstellen( LFrage, LLoesung );
if AufgabeAbfragen( LFrage, LLoesung )
then
Inc( LRichtigZaehler );
end;
ZeigeErgebnis( LRichtigZaehler, LRundenAnzahl );
end;
begin
try
Spiel;
except
on E :
Exception do
Writeln( E.ClassName, '
: ', E.
Message );
end;
end.
Durch diese Strukturierung kann man den Code für das eigentliche Spiel fast in Prosa hinschreiben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)