Gebruik het C++-voorbeeldprogramma van de website, dat een random spelletje Tetris speelt. Dit programma is geschreven in eenvoudig C++, zoals behandeld bij het college Programmeermethoden. Daar staan ook korte video's, bijvoorbeeld over het installeren van een C++-compiler: Code::Blocks OF Mac (zie ook hier) OF Linux; aanbevolen: Windows met Windows Subsystem for Linux (WSL2). En een stoomcursus C++ met bijbehorende sheets.
Het programma genereert random Tetris-stukken, die naar beneden vallen in een put. Geheel gevulde regels verdwijnen. Je algoritme moet het zolang mogelijk hier tegen volhouden — als er namelijk (gedeeltes van) stukken boven de rand van de "put" uitsteken stopt het proces. Het enige wat het programma moet doen is het kiezen van 1. de oriëntatie van het huidige stuk en 2. de kolommen waarin het stuk valt (positie). In het programma gebeurt dit met één getal dat oriëntatie en positie codeert. Er mag — in tegenstelling tot bij het "echte" spel — daarna niet meer geroteerd of geschoven worden. Informatie over het volgende stuk mag niet gebruikt worden. Er mag hooguit één zet vooruit gekeken worden, dat wil zeggen: je mag kijken wat er gebeurt als je het huidige stuk op alle mogelijke manieren zou laten vallen.
Gebruik nu een drietal AI-componenten:
Gebruik bijvoorbeeld gnuplot
om voor het verslag
enkele grafieken te plotten.
Een ander plot-programma mag ook.
Je kunt gnuplot onder Windows eenvoudig installeren van
hier.
Binnen gnuplot moet je misschien het "loadpath" goed zetten,
met zoiets als
gunplot> set loadpath "C:\\JeMap\\"
om de files die je wilt plotten te kunnen vinden.
In Ubuntu / WSL2 is het ook eenvoudig te installeren.
Op internet staat alles en meer over gnuplot, bijvoorbeeld
via de Wayback machine.
De resultaten van je experimenten moet je onder andere weergeven in een grafiek.
Tips:
maak een plot-file plot.gpi met daarin bijvoorbeeld
# plot-file voor gnuplot
set xrange [0:10]
set yrange [17:42]
set xlabel "iets"
set ylabel "iets anders"
plot "mijnfile.txt" using 1:2 with lines notitle
en roep deze binnen gnuplot aan met load "plot.gpi".
En dan het resulterende PDF-plaatje in je LaTeX-file binnenhalen.
Als je een file met resultaten hebt (zeg iets.uit;
twee getallen per regel):
1 24
2 31
3 56
4 7
kun je deze eenvoudig met gnuplot in een grafiek printen
met plot "iets.uit" with lines.
Deadline: woensdag 28 februari 2024, 13:15 uur.
In te leveren per ";team" (tweetal, eventueel eental): een geprint exemplaar van het verslag
(alleen eigen C++-code in de appendix)
tijdens het college,
en de C++-code van het programma via Brightspace => Assignments;
maak eerst een "Group".
Het verslag moet aan verschillende
eisen voldoen.
Geef, zoals gezegd, in de appendix van het verslag alleen de wijzigingen / aanvullingen op de bestaande voorbeeld-code.
Probeer ook kort een relatie te leggen
met de theorie zoals die behandeld wordt tijdens de colleges.
Er is een klein skelet voor de verslagen: verslag.tex, dat deze PDF-versie op kan leveren. Zie ook diverse opmerkingen.
Vragen en/of opmerkingen kunnen worden gestuurd naar: aicollege@liacs.leidenuniv.nl.
5 februari 2024 — http://www.liacs.leidenuniv.nl/~kosterswa/AI/teet2024.html