Een spel bestaat erin om een woord te raden, uitgaande van de letters ervan in willekeurige volgorde. Een speler kan ook tips vragen,
waardoor zijn beloning bij een correcte oplossing natuurlijk daalt.
Programmeer in de klasse RaadWoord
het volgende:
tip()
zonder argumenten : het raadsel wordt makkelijker gemaakt bij elke oproep van een tip. De eerste oproep zorgt ervoor dat
de eerste letter op de juiste plaats gezet wordt, de tweede keer de tweede letter enz. De $$i$$-de keer (te tellen vanaf 0) dat de methode tip()
opgeroepen wordt, wordt de letter op postie $$i$$ op de juiste plaats gezet. Hierbij ga je als volgt tewerk:
Indien het aantal tips groter is dan het aantal letters in het woord, dan wijzigt er niets. De methode heeft geen returnwaarde. Voorbeeld: stel dat het te zoeken woordt "repetitie" luidt, en dat het raadsel initieel "perteteii" is.
$$i$$ | $$c$$ | $$p$$ | Nieuw raadsel |
---|---|---|---|
perteteii | |||
$$0$$ | $$r$$ | $$2$$ | repteteii |
$$1$$ | $$e$$ | $$1$$ | repteteii |
$$2$$ | $$p$$ | $$2$$ | repteteii |
$$3$$ | $$e$$ | $$4$$ | repetteii |
$$4$$ | $$t$$ | $$4$$ | repetteii |
$$5$$ | $$i$$ | $$7$$ | repetieti |
$$6$$ | $$t$$ | $$7$$ | repetitei |
$$7$$ | $$i$$ | $$8$$ | repetitie |
$$8$$ | $$e$$ | $$8$$ | repetitie |
beloning()
levert de beloning op indien de speler het raadsel kan oplossen. Deze waarde wordt bepaald als het
aantal permutaties die je kan vormen met de opgegeven letters van het raadsel. Deze waarde bereken je als volgt:
Noem :
int
is (en geen float
)
__str__()
zonder argumenten levert de puzzel op. Om duidelijk te maken welk deel van het raadsel reeds opgelost is,
worden de letters die via een tip al correct geplaatst werden, via een hoofdletter weergegeven.
poging()
heeft string-argument. De methode levert True
of False
op
naargelang dit argument al dan niet de correcte oplossing van het raadsel voorstelt.
r = RaadWoord('algebra','glaearb') print(r) #glaearb print(r.beloning()) #2520 r.tip() print(r) #Algearb print(r.beloning()) #720 r.tip() print(r) #ALgearb print(r.beloning()) #120 r.tip() print(r) #ALGearb print(r.beloning()) #24 print(r.poging('meetkunde')) #False print(r.poging('algebra')) #True