Mensch-ärgere-dich-nicht in Pseudocode?
Hallo Community. Ich schreibe demnächst eine Informatik-Klausur und habe als Übungsaufgabe unter anderem folgende Aufgabe bekommen:
Beschreiben Sie in Pseudocode den Vorgang des ersten Würfelns beim Mensch ärgere dich nicht, also vor dem ersten Raussetzen bis zum Ende des ersten Zuges! Nutzen Sie die Befehle: - würfeln (gibt eine Zahl zwischen 1 und 6 zurück), - raussetzen, - rücken(n) (verlangt als Parameter die Anzahl der Felder um die gerückt wird - weitergeben (wenn der eigene Spielzug beendet ist) sowie die aus Pascal bekannten Schlüsselwörter für Programmstrukturen (begin, end, if ... then ... else ... usw.)! Verwenden Sie die Variablen AZ für die aktuelle Augenzahl und i für die Nummer des Wurfes.
_________________________________________________________
Wir haben sowas ähnliches schonmal im Unterricht gemacht, ich habe aber wieder vergessen wie das nochmal ging. Kann mir jemand helfen?
(Ich erwarte nicht, dass mir jemand diese Aufgabe komplett löst, ich hoffe, dass mir jemand Lösungsansätze geben kann.)
Danke :)
3 Antworten
Naja....du brauchst halt eine Schleife, die dreimal ausgeführt wird (i=3). Die Schleife wird unterbrochen, wenn AZ=6.
okay. hab es nochmal etwas ausgebaut.
begin
i=1 -> repeat
AZ:=wuerfeln;
i:= i+1
until (AZ=6) or (i=3)
if AZ=6 then begin
raussetzen
AZ:=wuerfeln; repeat
ruecken (AZ); until AZ<>6
end;
else
weitergeben
end;
Wenn du weist, wie man würfelt -- dann steht doch alles in der Aufgabenbeschreibung ,,,,
Doch. Aber ich stehe grade etwas aufm Schlauch. Tut mir leid.... Sonst würde ich ja nicht fragen
und wo ist nun dein problem?
das du nicht weist wie man Mensch ärger dich nicht spielt?!
Du sollst ja keinen echten code erstellen...
zb:
Würfel.würfel(wucht:double):integer ;
Nimm das Object Würfel und starte die methode würfel, welche in meinem beispiel einen Übergabeparameter hat nämlich die wuchtung des wurfes..
also in etwa so?:
begin;
repeat
az:=zufall az;
until i=3 or az=6;
if i=3 then ‘weitergeben’ else ‘rausrücken’;
end;
end.