Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:blc:informatik:glf20:programmieren:while-zahlenraten [2020/10/28 20:22] Ivo Blöchliger [Zufallszahlen] |
lehrkraefte:blc:informatik:glf20:programmieren:while-zahlenraten [2022/09/19 19:47] (current) Olaf Schnürer [Programmieren Sie das Rate-Spiel] |
||
---|---|---|---|
Line 15: | Line 15: | ||
* Was passiert am Schluss? | * Was passiert am Schluss? | ||
+ | {{ : | ||
===== Zufallszahlen ===== | ===== Zufallszahlen ===== | ||
<WRAP todo> | <WRAP todo> | ||
Line 48: | Line 49: | ||
</ | </ | ||
- | ===== Skelett für das Rate-Spiel ===== | + | ===== Programmieren Sie das Rate-Spiel ===== |
+ | <WRAP todo> | ||
+ | Starten Sie mit folgendem Skelett (Struktur des Programms ist gegeben, z.T. nur in Kommentaren, | ||
<code python> | <code python> | ||
grenze = 100 | grenze = 100 | ||
- | zahl = 42 # Hier eine Zufallszahl mit randrange zwischen 1 und granze | + | zahl = 42 # Hier eine Zufallszahl mit randrange zwischen 1 und grenze |
gefunden = False # Zahl schon erraten? | gefunden = False # Zahl schon erraten? | ||
Line 71: | Line 73: | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Der Computer soll raten ===== | ||
+ | Programmieren Sie ein Programm, das die Zahl erraten kann. Damit man dem Computer bequem mitteilen kann, ob die gesuchte Zahl kleiner, gefunden oder grösser ist, stelle ich folgende Funktion '' | ||
+ | <code python> | ||
+ | from entrydialog import * | ||
+ | |||
+ | def dialog(meldung): | ||
+ | knoepfe = [ButtonEntry(i) for i in (" | ||
+ | pane = EntryPane(meldung, | ||
+ | dlg = EntryDialog(450, | ||
+ | while not dlg.isDisposed(): | ||
+ | for i in range(3): | ||
+ | if knoepfe[i].isTouched(): | ||
+ | dlg.dispose() | ||
+ | return i-1 | ||
+ | |||
+ | unten = 1 # Kleinste noch mögliche Zahl | ||
+ | oben = 100 # Grössete noch mögliche Zahl | ||
+ | gefunden = False | ||
+ | versuche = 0 | ||
+ | |||
+ | # Raten solange die Zahl nicht gefunden wurde | ||
+ | while not gefunden: | ||
+ | # Zu erratende Zahl als Durchschnitt zwischen oben und unten, abgerundet auf eine Ganzzahl: | ||
+ | raten = int( (unten+oben)/ | ||
+ | versuche = versuche + 1 | ||
+ | | ||
+ | # Den Benutzer diese Zahl fragen | ||
+ | resultat = dialog(" | ||
+ | | ||
+ | # Je nach resultat die Grenzen anpassen, oder Programm beenden. | ||
+ | if resultat==0: | ||
+ | | ||
+ | | ||
+ | |||
+ | elif resultat < 0: #Geratene zahl war zu klein, also Grenzen anpassen | ||
+ | # | ||
+ | # TODO | ||
+ | # | ||
+ | else: # Geratene Zahl war zu gross, also Grenzen anpassen | ||
+ | # | ||
+ | # TODO | ||
+ | # | ||
+ | | ||
+ | </ | ||
+ |