Beschrijving
Galgje is een spelletje waarbij een speler letter voor letter de letters van een woord moet raden. Initieel krijgt de speler enkel te zien hoeveel letters het woord telt. De speler krijgt slechts een beperkt aantal beurten om het woord te raden, waarbij er telkens een beurt verloren gaat als de speler om een letter vraagt die niet in het woord voorkomt. Doorgaans wordt op basis van een tekening van een galg aangegeven hoeveel fouten de speler reeds heeft gemaakt, en dus onrechtstreeks ook hoeveel fouten hij nog mag maken.
Opgave
Maak een klasse dat je kan gebruiken voor het spelen van een spelletje Hangman (Galgje). De klasse bevat de volgende instantie variabelen:
- Het geheime woord wordt opgeslagen in de String instantievariabele geheimWoord
- Het verborgen woord wordt opgeslagen in de String instantievariabele verborgenWoord. In het verborgen woord wordt elke niet geraadde letter vervangen door een ?. Bijboorbeeld: geheim woord = abracadabra, verborgen woord = ab?a?a?ab?a
- Het aantal pogingen wordt opgeslagen in de int instantievariabele aantalPogingen
- Het aantal niet correcte pogingen wordt opgeslagen in de int instantievariabele aantalNietCorPogingen
De klasse bevat de volgende methodes:
- Defineer een constructor met als argument een String. De contructor zal deze String gebruiken voor het initaliseren van de instantiavariabele geheimwoord en verborgenWoord. De instantievariabelen aantalPoginingen en het aantalCorPogingen wordt gelijk gesteld aan O.
- Definieer accessor methode voor de instantievariabelen verborgenWoord, aantalPogingen en aantalNietCorPogingen
- De methode raadLetter heeft een char als argument en retourneert true indien de letter wordt gevonden in het woord. Deze methode zal ook de instantievariabelen aanpassen indien nodig.
- De methode isGeraden zonder argumenten die true retourneert indien het volledige woord gevonden is.
Bijkomende info
- een woord kan letters, hoofdletters, leestekens, spaties en cijfers bevatten
- een gok is hoofdletter ongevoelig, de juiste vorm moet wel in verborgenWoord verschijnen
- een eerder gegokte letter opnieuw proberen mag
- gebaseerd op oef 6, pagine 407 - Savitch en Mock
- gebaseerd op dodona oefening https://dodona.ugent.be/nl/exercises/1731116787/
Hierbij nog wat uitleg over de Dodona-testen voor deze oefening:
- test00objectConcept: test of de ingediende klasse de verwachte de klasse definitie heeft (interface/abstracte klasse/klasse/enum/…).
- test01inheritance: test of de ingediende klasse de verwachte superklasse heeft en de verwachte interfaces implementeert.
- test02variables_presence: test of de ingediende klasse de verwachte instantievariabelen en statische variabelen definieert.
- test03variables_staticInitialValue: test of de statische variabelen van de klasse geinitialiseerd worden met de verwachte waarde (indien van toepassing).
- test04constructor: test of de constructor het gewenste effect heeft (indien van toepassing).
- test05methodsPresent: test of de verwachte methodes aanwezig zijn in de ingediende klasse en of de methode definities overeenkomen met de verwachte definities (= test geen effect!).
- test06accessorsMutators: test of de ingediende klasse de al dan niet verwachte accessor- en mutatormethodes definieert en of deze het verwachte effect hebben.
- test07raadLetter: test de raadLetter-methode.
- test08isGeraden: test de isGeraden-methode.