|
|
Bij een dobbelspel gooit een speler met drie dobbelstenen. Daarbij wint de speler
- 1000 € als het aantal ogen op alle dobbelstenen gelijk is
- 500 € als het aantal ogen van de drie dobbelstenen een reeks van opeenvolgende natuurlijke getallen
vormt
- 100 € als twee van de dobbelstenen een gelijk aantal ogen hebben
De volgorde van de dobbelstenen is daarbij van geen belang.
|
Opdracht
In het hoofdprogramma kiest de computer een willekeurig getal (1, 2, 3, 4, 5 of 6) voor elk van de drie dobbelstenen.
Schrijf het aantal ogen van de dobbelstenen uit, samen met de winst.
Opmerking: er zijn verschillende juiste methodes om een randomgetal te vragen in Python. Gebruik voor gehele
getallen altijd
random.randint(a,b)
, anders zal Dodona je oplossing niet aanvaarden.
Invoer
Niets
Uitvoer
De ogen van de drie dobbelstenen, en op de lijn eronder de winst voor deze worp.
Voorbeelden
>>> main()
4 4 4
1000
>>> main()
4 5 6
500
>>> main()
4 4 1
100
>>> main()
2 4 1
0
Tutor Dodona
De Tutor zal andere getallen genereren, en is dus niet echt bruikbaar om fouten op te sporen.
Opmerkingen
Je moet het hoofdprogramma toevoegen in de gegeven procedure
main()
.
Tips
Hoe kan de computer een getal kiezen?
Gebruik de module random. In de API vind je de methode randint
, die je correct aanroept.
Hoe kies je een getal dat enkel 1,2,3,4,5 of 6 kan zijn met de module random?
Bovenaan voeg je toe: import random
Gebruik:
a = random.randint(1,6)
Mijn programma werkt perfect in VSCode, maar het wordt niet aanvaard door Dodona.
Er zijn verschillende juiste methodes om een randomgetal te vragen in Python.
Gebruik voor gehele getallen altijd random.randint(a,b)
.
Er zijn nu toch wel heel veel situaties. Moet ik die allemaal in aparte if-elif-else
verwerken?
Neen!! dit wordt spaghetti-code.
Je moet de drie dobbelstenen ordenen, dan heb je veel minder situaties die moeten gecontroleerd worden.
Hoe kan ik drie getallen ordenen?
Pseudocode voor het ordenen van drie getallen w1, w2
en w3
:
als w1 > w2 wissel w1 en w2
als w2 > w3 wissel w2 en w3
als w1 > w2 wissel w1 en w2
Na deze drie wissels zal w1 <= w2 <= w3
Hoe wissel ik twee getallen?
Dit kan op twee manieren:
- met een hulpvariabele:
h = w1
w1 = w2
w2 = h
- met 'tuples' in Python:
w1, w2 = w2, w1
Hoeveel aparte gevallen mag ik overhouden?
4 is voldoende: één voor elke winst.
Gebruik or / and
om voorwaarden aan elkaar te koppelen.
Gebruik eventueel ook haakjes.
In VSCode lukt het prima, maar ik gebruik teveel if/elif
bij de controle van
Dodona.
Gebruik maximum 3 keer if/elif
om de dobbelstenen te ordenen, en maximum 3 keer if/elif
om
de vier situaties te beschrijven (zie vorige tips).