Opdracht 11 De wachtrij met 4 pionnen
In deze opdracht gaan we van 4 naar 16 pionnen. Het nadeel van het huidige script is dat we zowel het aantal gezette stappen als de huidige positie bijhouden in de mainloop. Als we dat zo laten moeten we dat dus voor 16 pionnen doen. Dat is zeker een optie. In deze opdracht kies ik ervoor om de berekening van de huidige positie te verplaatsen naar de functie toonSpeelbord en in de mainloop alleen nog het aantal gezette stappen per pion bij te houden. We gaan daarvoor per kleur een lijstje bijhouden. Als je in opdracht 8 voor optie 2 hebt gekozen dan moet je dit net een beetje anders uitwerken. In de uitleg ga ik ervan uit dat er sprake is van optie 1 uit opdracht 8. Dit is een opdracht met wat uitdaging. Daarom stapsgewijs.
Opdracht A
We gaan de mainloop aanpassen:
- We initiëren alleen nog de variabele voor het aantal gezette stappen, maar in plaats van alleen een -1 nemen we nu een lijst op voor 4 pionnen: [-1,-1,-1,-1]
- Uit de mainloop wissen we de functie voor het berekenen van de huidige positie. En we geven aan de functie toonSpeelbord nu de variabele voor het aantal gezette stappen mee.
- De while loop voorwaarde moet je nu ook aanpassen. Het eenvoudigste is nu dat je een index 0 aan de variabelen toevoegt.
Opdracht B
We gaan de functie toonSpeelbord ingrijpend wijzigen.
- De start positie uit opdracht A1 (zie hierboven) van de kleuren plaatsen we nu bovenin deze functie.
- Maak een algoritme waarin je alle pionPosities berekent, zie het uitgeschreven voorbeeld onderaan dit blad.
- Pas nu de loop aan waarin je de posities laat zien, let op dat je daar dus nu de variabele pionPosities kan gebruiken en je dit dus niet meer per kleur hoeft te doen.
- De loop van de beginrij pas je nu eenvoudig aan door bij de variabele ook de index die al in de loop zit toe te voegen.
Opdracht C
We zullen ook de speelBeurt functie moeten aanpassen omdat deze nu een lijst als invoer krijgt. We laten het spelen met 4 pionnen voor een volgende opdracht, dus we voegen nu eenvoudig gewoon overal een index 0 toe voor de eerste pion. Om het spel te testen kan je hier de index ook wijzigen in 1, 2 of 3 om te zien dat je nu met elke pion kan lopen. Daarom is het handig om de index met een variabele toe te voegen. (let op dat je dit dan in de while loop van de mainloop ook moet aanpassen.)
Algoritme voor pionPosities = []:
Loop door alle 4 kleuren ['R' => 'Rood', 'B' => 'Blauw', 'G' => 'Groen', 'Y' => 'Geel'], je kan in een foreach ook de index (hier de letters) meegeven.
Loop door alle pionnen (4 pionnen per kleur)
Bereken de huidige positie van de pion met de functie die je daarvoor al had
gemaakt.
Sla de positie op in pionPosities (bijv: $pionPosities[$huidigePos] = "$key ";).
Einde loop
Einde loop
Opdracht 10 De wachtrij met 1 pion Opdracht 12 Met 4 pionnen lopen