Opdracht 4 (aanvullend): Een cellulaire automaat die steen-papier-schaar speelt.
Beschrijving
Eén van de laatste slides over zelf-organisatie en emergentie toont een screenshot van een cellulaire automaat waarin elke cel steen-papier-schaar speelt met zijn buren. Een vergelijkbare cellulaire automaat zie je hier in werking.
Een cellulaire automaat voor steen-papier-schaar werkt als volgt. Kies N kleuren en nummer die: 1 < 2 < 3 < ... < N. Aan het begin krijgt elke cel een willekeurige kleur. Na initialisatie laat je de cellulaire automaat lopen. In één slag wordt elke cel éénmaal ge-update, als volgt. Heeft een cel C een aantal van tenminste K buren die precies één hoger zijn, dan neemt C die hogere kleur aan. We zeggen dan dat C promoveert. In alle andere gevallen promoveert C niet. Kleuren lopen rond, dus 1 < 2 < 3 < ... < N < 1 < 2 < 3 < ...
Cellen mogen asynchroon ge-update worden, dat is geen probleem. K > 1 is een parameter die in te stellen is met een slider.
Verder
- Zorg ervoor dat je het aantal kleuren kunt instellen met een slider.
- Zorg ervoor dat je, op elk moment in de simulatie, cellen met de muis kunt sprayen met een random kleur. De spray-straal moet in te stellen zijn met een slider.
- Zorg ervoor dat je cellen met de muis kunt sprayen als dood (permanent inactief). Dode cellen worden zwart en doen niet meer mee in het update-proces.
- Voor omgeving kun je Moore of Von Neumann-omgeving nemen. Schrijf je app zo dat daar makkelijk tussen gekozen kan worden.
- Maak buttons “small world”, “medium world”, “large world”, waarmee in één keer de canvas-grootte, patch size en het aantal verschillende kleuren kan worden ingesteld. Kies voor elk van de drie buttons verstandige waarden.
Voorwaarden
- De opdracht wordt zelfstandig gemaakt. Er wordt gecontroleerd op plagiaat.
- De Netlogo documentatie-tab bevat je naam, studentnummer, en een clausule waarin verklaard wordt, met naam en voornaam, dat je de opgave zelf hebt gemaakt.
- Als niet aan alle voorwaarden is voldaan worden er punten afgetrokken.
- Submit op de gebruikelijk manier.
- Er wordt beoordeeld op code, commentaar, uitvoering van de onderdelen 1-5, en netheid van werken.
- Succes!
*Naast de algemene randvoorwaarden voor de programmeeropdrachten en de algemene randvoorwaarden voor de programmeeropdrachten die specifiek in Netlogo worden uitgevoerd. Zie de pagina met clausules.