Solitaire
Bij het starten van de applicatie wordt een formulier getoond met het solitaire spelbord. Dit spelbord bevat 32 pionnen en één lege plaats die zich exact in het midden van het bord bevindt. Een pion kan naar het lege vakje springen wanneer er zich tussen hem en de lege plaats één pion bevindt. Na de sprong wordt de pion die zich tussenin bevond van het bord verwijderd waardoor er een extra lege plaats komt. Het uiteindelijke doel bestaat erin om via verticale en horizontale sprongen alle pionnen, op éé pion na, van het bord weg te spelen.
Wanneer de gebruiker met de muis over een pion beweegt die een sprong kan uitvoeren naar een leeg vakje, kleurt het pionvakje Khaki. Als de muispointer dat vakje verlaat, kleurt het opnieuw Crimson.
Een pion kan enkel en alleen verplaatst worden door een Khaki gekleurd vakje met de muis aan te klikken. Na het selecteren van het vakje verandert de achtergrondkleur in blauw (Blue). De gebruiker kan nu de pion verplaatsen door het doelvakje aan te klikken. Wanneer dit doelvakje geen leeg vakje is of er bevindt zich tussen het blauwe vakje en het lege vakje geen pion, dan wordt de sprong niet uitgevoerd en wordt het blauwe vakje opnieuw in Crimson gekleurd. In het andere geval wordt de sprong uitgevoerd en verdwijnt de pion tussenin.
Na iedere sprong wordt er nagegaan of er nog andere pionnen kunnen worden weggespeeld. Indien er geen mogelijke sprongen resteren brengt het programma een passende boodschap op het scherm. Na het klikken op "OK" wordt er een reset uitgevoerd waardoor de beginsituatie wordt hersteld.
De gebruiker kan op ieder moment het formulier in grootte aanpassen. Dit kan door het te maximaliseren (of te minimaliseren) of door het horizontaal en/of verticaal uit te rekken (of te verkleinen). De minimumgrootte van het formulier bedraagt echter 320 bij 320 pixels! Telkens de grootte van het formulier wordt aangepast, wordt de grootte van het spelbord aangepast. Daarnaast wordt ook de plaats van het bord op het formulier opnieuw bepaald.
Enkele opmerkingen:
- Maak net zoals bij de vorige applicaties gebruik van twee klassen. Een klasse voor het tonen van de GUI en een klasse die alle spellogica bevat. Tracht dus de GUI en het spel van elkaar te scheiden!
- Voor deze opgave is het aangewezen om gebruik te maken van muisgebeurtenissen en niet van de gebruikelijke click-events.
Een uitvoerbare versie van deze oefening kun je hier vinden.
|