Prof. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 8. November 2004
Christian Ehrhardt Blatt 3


Uni Logo



Allgemeine Informatik 3 (WS 2004/2005)


Abgabetermin 16.11.2004

Viele Bits

In diesem Blatt soll ein kleines Spiel programmiert werden, bei dem es darum geht, eine Zahl, die vom Computer gewählt wurde, zu erraten. Dazu wählt der der Computer zunächst eine zufällige Zahl zwischen 0 und 255 (jeweils einschließlich). Außerdem wählt sich der Computer eine der drei Bitoperationen UND, ODER oder XOR aus.
Anschließend muß der Spieler so lange eine Zahl zwischen 0 und 255 eingeben, bis die gesuchte Zahl erraten wurde. Falls bei einem Rateversuch die Zahl nicht erraten wurde, bekommt der Spieler einen Hinweis. Für diesen Hinweis Verknüpft der Computer die geheime zu ratende Zahl und die soeben vom Spieler geratene Zahl mit Hilfe der geheimen, zu Spielbeginn vom Computer festgelegten Bitoperation. Anschließend zählt der Computer wieviele Einsen in der Binärdarstellung des Ergebnisses vorkommen. Diese Anzahl wird als Hinweis ausgegeben.
Sobald die Zahl erraten wurde, soll die Anzahl der insgesamt benötigten Rateversuche ausgegeben werden.

Das Programm (7 Punkte)

Schreibt ein C-Programm, das es einem menschlichen Spieler erlaubt, dieses Spiel am Computer zu spielen.

Eine Strategie (3 Punkte)

Demonstriert Eurem Tutor, daß Ihr spätestens beim 10. Rateversuch immer das richtige Ergebnis findet und erklärt ihm, wie Ihr das bewerkstelligt. Wenn Euch dazu keine Strategie einfällt, dann schreibt statt dessen ein Programm, das nach beliebig vielen Rateversuchen irgendeine Zahl ausgibt, die keinem der bisher gegebenen Hinweise widerspricht.

Hinweise

Beispiel

Hier ein Beispiel für einen möglichen Spielablauf.
thales$ spiel 
Bitte eine Zahl (0-255) raten: 17
Hinweis fuer 17: 1
Bitte eine Zahl (0-255) raten: 250
Hinweis fuer 250: 3
Bitte eine Zahl (0-255) raten: 255
Hinweis fuer 255: 5
Bitte eine Zahl (0-255) raten: 0
Hinweis fuer 0: 0
Bitte eine Zahl (0-255) raten: 103
Hinweis fuer 103: 4
Bitte eine Zahl (0-255) raten: 111
Hinweis fuer 111: 4
Bitte eine Zahl (0-255) raten: 231
Hinweis fuer 231: 5
Bitte eine Zahl (0-255) raten: 167
Hinweis fuer 167: 4
Bitte eine Zahl (0-255) raten: 199
199 wurde nach 9 Versuchen erraten



Christian Ehrhardt 2004-11-08