Für diese Aufgabe unterstellen wir mal, daß Sie
besitzen.
In dieser Konstellation möchten Sie einen Sonntags-Ausflug von Ulm nach Neu-Ulm unternehmen und kommen an eine Donaubrücke, die gerade renoviert wird. Deshalb können Sie nicht alle auf einmal über diese Brücke gelangen.
Nun stehen Sie vor folgenden Problemen:
Der Sonntagsausflug scheint empfindlich gestört, weil Sie nicht wissen, wie Sie jetzt nach Neu-Ulm 'rüberkommen. ``Aber Halt!'', denken Sie sich, ``Ich habe in der Informatik-Vorlesung doch etwas über endliche Automaten gehört!''. Und schon beginnen Sie, die Situation als endlichen Automaten zu skizzieren, d.h. mit Start- und Endzustand, erlaubten und nicht erlaubten Zuständen sowie (erlaubten) Transitionsdiagrammen.
Und bei dieser Gelegenheit finden Sie dann auch gleich die Lösung, oder...?
Für die Abergläubischen unter Ihnen ersatzlos gestrichen...!
Als begeisterter PC-Spieler und angehender Oberon-Crack haben Sie sich an namhafte Spielehersteller gewandt und angeboten, in den Weihnachtsferien Doom 4 in Oberon zu programmieren.
Beim Projektverantwortlichen kam Ihre Idee eigentlich ganz gut an, aber er möchte - bevor er Sie einstellt - zunächst eine Probe Ihres Könnens als Spieleprogrammierer sehen, und deshalb gibt er Ihnen (bis nächste Woche) die folgende Aufgabe:
Implementieren Sie in Oberon das folgende Spiel:
Auf einem (virtuellen) Tisch liegen Münzen. Es spielt ein Spieler gegen den Computer. Abwechselnd darf jeder (also der Spieler oder der Computer) oder Münze(n) vom Tisch nehmen. Gewonnen hat derjenige, der die letzte Münze nimmt.
Folgende Features erwartet der Projektleiter von Ihrem Programm:
Während Sie ein wenig im Netz unterwegs waren, sind Sie zufällig auf eine Seite geraten und haben sich dabei eine Beta-Version dieses Spiels (für Solaris oder Linux) heruntergeladen. Wenn Ihr Programm im Wesentlichen genau so aussieht, ist Ihr Projektleiter (= Tutor(in)) auch gerne bereit, auf Punkt 4 der obigen Feature-Liste zu verzichten.
Viel Erfolg!