Allgemeine Informatik WS 2000/01
Prof. Dr. H. Neumann $\bullet$ Dr. K. Murmann $\bullet$ S. Geschwentner $\bullet$ Dr. F. Schwenker

8. Aufgabenblatt (bis zum 24.01.2001)



Nachdem Sie sich in der Vorlesung mit dem Prozedurkonzept von Modula 2 vertraut gemacht haben, soll es nun auch in den Übungen am Beispiel eines Kartenspieles praktisch eingesetzt werden. Die Regeln des Spieles sind sehr einfach:

  1. Zum Spiel wird ein Skatblatt verwendet (wie in Aufgabe 17 definiert), ein Spieler nimmt am Spiel teil.
  2. Das Kartenspiel wird gemischt, dann erhält der Spieler 5 Spielkarten. Er ermittelt dann, ob er ein Paar, ein DoppelPaar, einen Dreier, ein FullHouse oder gar einen Vierer besitzt. Ein Spieler hat ein Paar bzw. Dreier bzw. Vierer, falls sich genau zwei bzw. drei bzw. vier Karten des gleichen Kartenwertes unter seinen Karten befinden. Ein Spieler hat ein DoppelPaar bzw. FullHouse, falls er von zwei verschiedenen Kartenwerten je ein Paar bzw. ein Paar und einen Dreier besitzt.
  3. Der Spieler bekommt für ein Paar 1 DM, für ein DoppelPaar 3 DM, für einen Dreier 5 DM, für ein FullHouse 7 DM und für einen Vierer 9 DM von der Bank ausgezahlt, sonst muß er 1 DM bezahlen.
  4. Schließlich gibt der Spieler seine Karten zurück, die Karten werden erneut gemischt, an den Spieler verteilt, usw.
  5. Zu Beginn verfügt die Bank über $K$ DM und der Spieler über $k$ DM. Das Spiel ist beendet wenn einer der beiden pleite (Kapital $=$ 0 DM) ist.



Aufgabe 19.
Implementieren Sie den Mischvorgang des Kartenspiels und das Ausdrucken des Kartenspapels durch Modula 2 Prozeduren. Sie sollen hierzu Ihren Programmtext aus Aufgabe 17 neu strukturieren und mithilfe von Prozeduren mit Parametern formulieren.



Aufgabe 20.
Implementieren Sie fünf verschiedene Funktionsprozeduren vom Typ BOOLEAN die testen, ob sich unter den oberen fünf Karten des Stapels (dieses sind die Karten des Spielers), ein Paar, ein DoppelPaar, ein Dreier, ein FullHouse oder ein Vierer befindet.



Aufgabe 21.
Integrieren Sie die entwickelten Prozeduren in ein Modula 2-Programm, das das oben beschriebene Spiel simuliert. Zu Beginn soll der Spieler $k=50$ DM und die Bank $K=200$ DM besitzen.

Der Kartenstapel soll kontinuierlich durchmischt werden, d.h. der Kartenstapel soll nach einem Einzelspiel nicht sortiert, sondern einfach weiter vermischt werden. Natürlich soll der Pseudozufallszahlengenerator auch nur einmal initalisiert werden (Startwert 1355).

Nach jedem Einzelspiel sollen die Karten (Kartenwert und Kartenfarbe) des Spielers zusammen mit der höchstmöglichen Bewertung dieser Karten ( Paar, DoppelPaar, Dreier, FullHouse, Vierer bzw. -- falls sich kein Paar, DoppelPaar, etc. in den Karten des Spielers befindet) und dem Kapital des Spielers und der Bank ausgedruckt werden. Insgesamt sollen höchsten 10000 Einzelspiele durchgeführt werden, falls die Bank oder der Spielers pleite sind, soll das Progamm auch beendet werden.





Stefan Geschwentner
2001-01-17