[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