[P1] Project: Raad een getal

advertisement
[P1] Project: Raad een getal
Vereiste voorkennis: tot en met fiche [7]
Opdracht
We maken een heel traditioneel raad-spelletje. De computer bepaalt een willekeurig getal tussen 1 en 100,
en wij mogen een getal raden. De computer zegt of we hoger of lager moeten mikken. In gemiddeld een
zevental keer raden moet je er zo in slagen om het getal te vinden.
Wat hebben we nodig?
-
Een functie om een willekeurig getal te bepalen
Een while-lus om een herhalingslus te laten draaien zolang we niet goed geraden hebben
Enkele variabelen om het aantal raadpogingen bij te houden, en om via waar of onwaar bij te houden
of we het getal al gevonden hebben of niet.
Aan de slag!
Volg mee via P1_RaadEenGetal.py
We beginnen met het bepalen van ons willekeurig getal. Dat doen we via de functie randint() uit de bibliotheek “random”.
Om de functie randint() te kunnen gebruiken beginnen we met de volgende regel:
from random import randint
# Zorg dat we willekeurige getallen kunnen bepalen
En vervolgens bepalen we een getal tussen 1 en 100 (1 en 100 inclusief):
teRadenGetal = randint(1,100)
Nu kunnen we beginnen met het begroeten van onze gebruiker. Hiervoor gebruiken we een aantal simpele
print-commando’s.
print('Raadspelletje')
print('-------------')
print('Raad een getal tussen 1 en 100')
print('')
Nu bepalen we 2 variabelen. Eentje om bij te houden of het getal al geraden is of niet (en we beginnen bij
“niet geraden”), en eentje om bij te houden hoeveel raadpogingen er al geweest zijn (we beginnen bij 0 en
we verhogen bij elke raadpoging met 1).
getalGeraden = False
aantalKeerGeraden = 0
Python [P1] Project: Raad een getal
versie 9/03/2015 1/3
Nu moeten we volgende code uitvoeren:
-
zolang het getal niet geraden is:
o vraag een gokje
o verhoog de teller
o bekijk of het gokje kleiner, groter of gelijk is aan het te raden getal
o als het gelijk is, stop dan de lus door getalGeraden gelijk te maken aan ‘waar’.
In Python-code ziet dat er zo uit:
while not getalGeraden:
gokje = int(input('Wat is je gok? '))
aantalKeerGeraden += 1 # Verhoog de teller met 1
if gokje < teRadenGetal:
print('Te laag! Probeer opnieuw.')
elif gokje > teRadenGetal:
print('Te hoog! Probeer opnieuw.')
else:
# Als het niet groter of kleiner is, is het gelijk
print('Goed geraden! Je hebt er', aantalKeerGeraden, 'raadpogingen voor nodig gehad.')
getalGeraden = True
Dat is het – het programma is af.
Een voorbeeld van het programma
Zo ziet het afgewerkte programma er uit als we het laten lopen:
Raadspelletje
------------Raad een getal tussen 1 en 100
Wat is je gok? 50
Te hoog! Probeer opnieuw.
Wat is je gok? 25
Te laag! Probeer opnieuw.
Wat is je gok? 35
Te laag! Probeer opnieuw.
Wat is je gok? 40
Te hoog! Probeer opnieuw.
Wat is je gok? 38
Te hoog! Probeer opnieuw.
Wat is je gok? 36
Goed geraden! Je hebt er 6 raadpogingen voor nodig gehad.
Python [P1] Project: Raad een getal
versie 9/03/2015 2/3
De volledige code
# Raad een getal
from random import randint # Zorg dat we willekeurige getallen kunnen bepalen
teRadenGetal = randint(1,100)
# Begroeting
print('Raadspelletje')
print('-------------')
print('Raad een getal tussen 1 en 100')
print('')
getalGeraden = False
aantalKeerGeraden = 0
while not getalGeraden:
gokje = int(input('Wat is je gok? '))
aantalKeerGeraden += 1 # Verhoog de teller met 1
if gokje < teRadenGetal:
print('Te laag! Probeer opnieuw.')
elif gokje > teRadenGetal:
print('Te hoog! Probeer opnieuw.')
else:
# Als het niet groter of kleiner is, is het gelijk
print('Goed geraden! Je hebt er', aantalKeerGeraden, 'raadpogingen voor nodig gehad.')
getalGeraden = True
Python [P1] Project: Raad een getal
versie 9/03/2015 3/3
Download