Boter, kaas en eieren bouwen

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

Op deze pagina, ga je het bord tonen en zullen 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, dus je kan bijvoorbeeld dingen doen zoals iedere kloon op een apare positie zetten.

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

In dit project zal je negen klonen moeten maken, voor ieder vierkant van het bord, één. Dus je zal iets nodig hebben zoals:

De uiteindelijke code die je zal schrijven zal iets uitgebreider zijn dan dit, maar dit is het idee. Je zal negen klonen nodig hebben en je zal de ouder verbergen. Hierdoor kan je de vierkanten van het raster besturen met blokken als:

  1. Voordat je verdergaat, moet je even naar dit demonstratiescript kijken samen met je partner. Bespreek wat er zal gebeuren wanneer je op de sprite klikt.
    Dit script helpt je te begrijpen hoe klonen werken, maar het zal geen deel uitmaken van het uiteindelijke project.
  2. Klik dan nu op de sprite op het speelveld en vergelijk wat er gebeurt met wat je verwacht had.
    • Merk op hoe de ouder-sprite (niet de kloon) naar nieuwe willekeurige posities beweegt nadat hij zichzelf heeft gekloond. Kijk weer 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, die laat alleen een afbeelding van de sprite achter op het speelveld.
    • Het maak kloonblok neemt een invoer, omdat het een kopie van elke sprite kan maken. In dit project, is er maar één sprite in het begin, dus de keuzes zijn 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. Als je op klikt, zullen de ouder-sprite en al zijn klonen het script uitvoeren, maar alleen de klonen zullen verwijderd worden. De ouder blijft dus alleen over op het speelveld.

Als je klikt op worden de klonen ook automatisch verwijderd, maar met het script hierboven heb je meer zekerheid in het geval dat je het programma meerdere keren uitvoert zonder op stop te klikken.
  1. Bereid je voor om je programma te maken:
    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 die schrijven bij het volgende probleem.
      • De variabele X' beurt waar is wanneer X aan de beurt is en onwaar als 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. (Herinner je 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.
    • Wees er zeker van dat de originele sprite verschijnt voordat je hem kloont, dan zijn de klonen ook zichtbaar. Nadat je negen keer de originele sprite gekloond hebt om het bord te maken, laat dan de originele sprite verdwijnen. Anders heb je tien vierkanten.
    • Klik hier als je een extra hint nodig hebt over 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. Maak de ouder-sprite niet versleepbaar, zodat de vierkanten niet per ongeluk bewogen kunnen worden wanneer de speler erop klikt.
  4. Speel een of twee spelletjes Boter-kaas-en-eieren met je partner en verwijder eventuele bugs. Bespreek daarna wat je misschien nog meer toe wil voegen aan je programma.
  5. Je kan opmerkingen achterlaten in je project om jezelf te herinneren aan wat je later wellicht nog toe wil voegen.

    Je zal hier nog aan werken in Hoofdstuk 3 Les 2 Pagina 1: De zetten onthouden.

TerugVolgende