Boter, kaas en eieren bouwen

In dit project schrijf je een programma dat net zo goed Boter-kaas-en-eieren kan spelen als jij.

Op deze pagina maak je het bord en gaan twee menselijke spelers zetten doen.




Een manier om deze game te bouwen is om meerdere sprites te gebruiken; ieder vierkant van het bord is een aparte sprite. Iedere sprite weet waar hij staat op het bord en eenmaal geplaatst, zal de sprite nooit meer bewegen. De speler klikt op een van de negen vierkanten en dat vierkant verandert dan zijn uiterlijk om de zet weer te geven.



  1. De eerste sprite is al voor je klaargezet. Hij heeft 3 uiterlijken: Leeg, X en O. Klik een paar keer op het blok om ze allemaal te zien.

Je gaat klonen gebruiken om het 3×3 Boter-kaas-en-eierenbord te maken.  

Een kloon is een kopie van een sprite die informatie deelt met zijn sprite-ouder (de originele sprite). Klonen hebben bijvoorbeeld kopieën van alle scripts van de ouder en als het script van de ouder veranderd wordt, dan verandert het script van de kloon ook. Maar veranderingen van een kloon worden niet gedeeld met de ouder, je kan dus bijvoorbeeld iedere kloon op een andere positie zetten.


Klonen starten met dezelfde positie, uiterlijken en scripts als hun ouder. Maar ze...


Er bestaan overigens ook permanente klonen, maar die worden op een andere manier opgebouwd. Hier gebruiken we alleen tijdelijke klonen.
In dit project zal je negen klonen moeten maken, voor ieder vierkant van het bord, één. Je hebt dus iets nodig als:



Je uiteindelijke code zal iets uitgebreider zijn, maar dit is het idee. Je hebt negen klonen nodig en je verbergt de ouder. Op deze manier kun je de vierkanten van het raster besturen met blokken zoals:




  1. Bestudeer dit demonstratiescript over de werking van klonen, samen met je partner. Het script maakt verder geen deel uit van het echte project. Bespreek vooraf wat er zal gebeuren wanneer je op de sprite klikt.


  2. Klik dan op de sprite in het speelveld en bekijk of er gebeurt wat je verwacht had.
    • Merk op hoe de ouder-sprite (niet de kloon) naar nieuwe willekeurige posities beweegt nadat hij zichzelf heeft gekloond. Kijk naar de code; waarom is dit logisch?
    • Bedenk dat de klonen en hun ouder allebei sprites zijn. Je kan op ze klikken en ze verslepen (probeer dit maar eens). Dit is anders dan wanneer je een stempelblok van het Pen-palet gebruikt. Deze laat alleen een plaatje van de sprite achter op het speelveld.
    • Het maak kloonblok heeft een invoer nodig, omdat het elke sprite kan kopiëren. In dit project is er aanvankelijk maar één sprite, je kunt dus kiezen tussen mijzelf of Vierkant (de naam van de sprite), wat in dit geval hetzelfde is.


Het volgende script in dit project is:



Het blok heet verwijder deze kloon in plaats van verwijder deze sprite, omdat het alleen werkt voor klonen.


  1. Voorbereidende stappen:
    1. Verwijder het wanneer ik aangeklikt word demonstratiescript van opdracht 3.
    2. Verbind het wanneer wordt aangekliktblok aan het script net eronder.


    3. Lees het script en merk op dat...
      • het wachtblok ervoor zorgt dat het andere wanneer wordt aangekliktblok tijd heeft om de oude klonen te verwijderen voordat we nieuwe klonen maken.
      • het maakBordblok leeg is. Je gaat dit schrijven bij stap 6.
      • de variabele X'beurt is waar wanneer X aan de beurt is, en onwaar wanneer O aan de beurt is.

      Wanneer je moet schakelen tussen twee waardes, dan is het handig om booleans te gebruiken.
      Ten eerste kan je het nietblok gebruiken om de waarde om te wisselen van waar naar onwaar en vice versa. Ten tweede kan je als gebruiken om de variabele te testen.
      Vergeet niet dat als een invoer van waar/onwaar nodig heeft.



  2. Pas het maakBordblok aan om negen klonen neer te zetten in drie rijen van drie.



    Tips:
    • De uiterlijken zijn allemaal 50 stappen hoog en 50 stappen breed.
    • Zorg er voor dat de klonen starten met het uiterlijk van een leeg vierkant.
    • Maak steeds klonen vanuit de originele sprite. Nadat je negen keer de originele sprite hebt gekloond om het bord te maken, laat dan de originele sprite verdwijnen.
    • Klik hier voor een extra hint over het maakBord

  3. Maak het nu af:
    1. Schrijft een wanneer ik aangeklikt wordscript dat zorgt dat iedere kloon het goede uiterlijk krijgt als hij aangeklikt wordt: X of O, afhankelijk van wiens beurt het is.
    2. Beslis wat een vierkant moet doen als hij aangeklikt wordt, terwijl hij al een X- of O-uiterlijk heeft. Met het kan je controleren wat het uiterlijk is. Waarbij de uitkomst het zoveelste uiterlijk van de sprite is. In dit geval is een leeg vierkant de waarde 1, dus je kan controleren of een vierkant leeg is met het blok:
    3. Vink de versleepbaar-checkbox uit bij de Vierkant ouder-sprite, zodat de vierkanten niet per ongeluk bewogen kunnen worden wanneer de speler erop klikt.



  4. Speel een paar spelletjes Boter-kaas-en-eieren met je partner en verwijder eventuele bugs. Bespreek daarna wat je nog zou willen verbeteren aan het programma.

  5. In Hoofdstuk 3 Les 2 Pagina 1 'De zetten onthouden' ga je verder met dit programma.
    Voeg voor later eventuele opmerkingen toe aan je project per blok, via een rechtermuisklik en de optie 'opmerking toevoegen'.




TerugVolgende