Een “makkelijk” spelltje om te spelen op een computer is memory. De speler(s) wordt een grid getoond met “tegels” waarop een plaatje staat. Wanneer een speler aan de beurt is mag hij (of zij) twee tegels omdraaien en bekijken. Wanneer de gekozen tegels gelijk zijn scoort de speler een punt en mag een nieuwe combinatie uitkiezen. Wanneer de tegels niet gelijk zijn worden ze verborgen en mag de “volgende” speler.
Om spelen met een enkele speler mogelijk te maken kun je het aantal pogingen tellen.
We raden aan om gebruik te maken van een native array, of een ArrayList
.
Je vraagt je misschien af wat het punt ven deze oefening is. Wel, we willen dat je jouw memory bouwt zodat het de volgende features ondersteund:
Memory
klasse met een Visualiatie
class die gebruikt kan worden om tegels weer te geven.
De tegels kunnen natuurlijk veschillende plaatjes weergeven:
Maar om het begin makkelijk te maken raden we aan om eerst te beginnen met letters, cijfers, kleuren of woorden.
Ontwerp jouw memory op zo’n manier dat het datamodel alle mogelijke referentie typen toestaat via generics!
Afhankelijk van de groote van het bord, moet je eindigen met een even aantal tegels! (Neem vooral even de tijd om hier over na te denken.)
Delen door twee vertelt je dus hoeveel verschillende “plaatjes” (of woorden, symblen, kleuren) je nodig hebt.
De tweede lijst vertelt je nu welke tegel op welke positie list op het bord. De opgeslagen waarde vertelt je de index van het “plaatje” op de tegel.
Je kunt een extra array bij houden met de nummers 0 t/m I.
In plaats van het plaatje direct op te zoeken, kun je eerst het nummer zoeken in deze nieuwe array. Op die manier representeert ieder nummer een willekeurig plaatje, zodat verschillende spellen verschillende sets van plaatjes gebruiken.
Voor ieder spel worden alleen de eerste plaatjes gebruikt. Dus in plaats van het husselen van je echte array met content kun je deze index array husselen. Dit zorgt ervoor de spelers over meerder spelletje alle plaatjes te zien krijgen die jouw folder bevat.
We adviseren Heel Sterk om eerst letters te gebruiken en gewoon het bord te pringen met System.out
.
Op die manier is het heel eenvoudig om de twee gekozen “tegels” te printen.
Later kun je dan de SaxionApp
gebruiken om echte tegels te tonen, en wanneer ze gekozen worden de plaatjes.
Voeg de mogelijkheid toe om:
Ontwerp een manier om een high score op te slaan. Na het spelen, en met zo min mogelijk pogingen, moeten spelers hun naarm kunnen invoeren. Dit wordt dan opgeslagen in de database. Vanaf nu kun je de top 5 spelers weergeven met hun score en de datum waarop ze gespeeld hebben…
In deze opdracht zijn er voldoende gelegenheden om jouw kennis van het agelopen jaar in te zetten. Veel plezier!