Boter, kaas en eieren bouwen

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

Op deze eerste 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 hij nooit meer bewegen. De speler klikt op een van de negen vierkanten en die sprite verandert 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 om ze allemaal te zien.

J 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 naar een andere positie laten bewegen.

Klonen starten met dezelfde positie, uiterlijken en scripts van de ouder. Maar klonen (in ieder geval die door een programma zijn gemaakt)...

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 zoals:

  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 klonen te begrijpen, 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 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 de ouder sprites zijn. Je kan op ze klikken en ze verslepen (probeer dit). 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 dot 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 automatisch verwijderd, maar dit script geeft 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 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, omdat je not kan gebruiken om de waarde om te wisselen en als kan 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 zeker dat de originele sprite verschijnt voordat je hem kloont, dan zijn de klonen ook zichtbaar. Nadat je negen keer gekloond hebt om het bord te maken, laat de originele sprite dan verdwijnen, zodat hij het spel niet stoort als een tiende vierkant.
    • 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 ze aangeklikt worden: X of O afhankelijk van wiens beurt het is.
    2. Beslis wat een vierkant moet doen als hij aangeklikt wordt, terwijl ze al een X- of O-uiterlijk hebben.
    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 van 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 misschien nog later toe wil voegen.

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

TerugVolgende