![]() | Toevalsgetallen en kiezen |
Wanneer je een dobbelsteen gooit, weet je niet welk getal je krijgt. Misschien krijg je een één of een zes of een vijf. Zo'n soort getal noemen we een toevalsgetal.
Babylscript heeft een commando dat "toeval" heet om toevalsgetallen te maken. Je moet het "toeval"-commando een getal tussen de haakjes meegeven. Babylscript geeft je dan een toevalsgetal tussen 1 en het nummer dat je aangaf.
Typ "toon(toeval(6));" in het programmagebied links. Welk getal wordt er getoond wanneer je op de knop Uitvoeren klikt? Wanneer je het programma een aantal keer uitvoert, krijg je veel verschillende getallen.
We gaan een programma voor een spelshow schrijven! In dit spel zijn er drie deuren: een blauwe deur, een rode deur, en een paarse deur. Er is een prijs achter één van de deuren. Je kunt kiezen om een deur te openen. Als de prijs daar is, heb je gewonnen!
We geven de deuren eerst nummers. De blauwe door is deur 1. De rode deur is deur 2. De paarse deur is deur 3. We kunnen dan toeval(3) gebruiken om te kiezen welke deur de prijs heeft gewonnen. Je weet dat toeval(3) een getal tussen 1 en 3 kiest, en dat iedere deur één van de nummers 1, 2, of 3 heeft.
Het programma moet dan vragen welke deur je wilt openen: de rode deur, de blauwe deur, of de paarse deur. We gebruiken een speciaal commando genaamd "kies". Met het kies-commando geef je eerst een tekenreeks met aanwijzingen. Daarna plaats je een puntkomma en een aantal andere tekenreeksen met verschillende dingen waaruit iemand kan kiezen. Wanneer je de eerste tekenreeks neemt, geeft kies je een één terug. Wanneer je de tweede tekenreeks neemt, geeft kies een twee terug. Wanneer je de derde tekenreeks neemt, geeft kies je een drie terug. Enzovoorts.
Het programma moet je dus vragen om een deur te kiezen. We stoppen de keuze in een variabele die "jij" heet. Als "jij" 1 is, betekent dat de blauwe deur. Als "jij" 2 is, betekent het de rode deur. En als "jij" 3 is, betekent het de paarse deur.
Tenslotte ontroleert het programma of de prijs achter de deur zit die is geopend. Als je de deur met een prijs hebt geopend, vertelt het programma je wat die prijs is. Probeer het programma uit.
Je weet nu genoeg om een iets moeilijker spelletje te schrijven zoals Steen, Papier, en Schaar. In dit spelletje moeten jij en de computer kiezen tussen steen, papier, en schaar. Als je keuze de keuze van de computer verslaat, heb je gewonnen.
Het programma moet beginnen met jou te vragen of je de steen, het papier, of de schaar kiest.
Daarna moet de computer zelf steen, papier of schaar kiezen. Het gebruikt het commando toeval() om een getal tussen 1 en 3 te vinden. Het plaatst dat getal in de variabele "comp". Het vertelt je dan wat zijn keuze was. Vergeet niet: 1 betekent steen, 2 betekent papier, en 3 betekent schaar.
Tenslotte moet het programma uitvogelen wie er heeft gewonnen. Het kijkt naar je keuze en de keuze van de computer om te zien wie de betere keuze heeft gemaakt. Als "comp" de waarde 3 heeft en "jij" ook 3 is, dan hebben beide spelers de schaar gekozen. Dit betekent dat er niemand heeft gewonnen, en het programma toont het woord gelijkspel. Als "comp" de waarde 1 heeft en "jij" is 2, dan heeft de computer steen gekozen en hij hebt papier gekozen. Dat betekent dat jij hebt gewonnen.
Kun je het programma zo aanpassen dat je het spelletje drie keer moet spelen, en de computer de score bijhoudt?