Verslag Tetris codefest

07-04-2010

Dit verslag is geschreven door Mendelt Siebenga(@mendelt) . Bedankt Mendelt!

Op woensdag 7 April waren we welkom op het Delftse kantoor van OGD voor het Devnology Tetris Codefest. De OGD heeft een makkelijk bereikbaar kantoor aan de rand van Delft met op de bovenste verdieping een kantine voorzien van bar, dakterras, flipperkast en een arcade machine. Kortom een goede plek om met een stel programmeurs een avond lang in code te duiken.

Natuurlijk moest er eerst gegeten worden. Onder het genot van enkele biertjes, frisdrank en de indrukwekkende hoeveelheid chinees die door onze gastheer was besteld werden alvast de verschillende Tetris implementaties waar iedereen mee bezig was geweest besproken.

Na het eten kregen de deelnemers nog een half uur de tijd om de laatste hand te leggen aan hun code, hierna gingen we van start. Het was leuk om te zien dat er grote verschillen waren in aanpak. De meest in het oog springende versies waren de Tetris compiler in ANTLR en Tetris in SQL.

De ANTLR versie gebruikte een met ANTLR gegenereerde parser voor het inlezen van tekst-bestanden met Tetris spelsituaties waarna een stukje Java code zich gedroeg als speler en de juiste zetten deed. De resulterende spelsituaties werden weer in een tekst-bestand weggeschreven en kon als invoer dienen voor de parser waarna de java code een volgende zet kon verzinnen. Hiermee was meteen de grootste onvolkomenheid in traditionele Tetris implementaties geëlimineerd, de menselijke speler.

De SQL versie gebruikte een database voor het opslaan van spelsituaties. Alle logica zoals het draaien van stenen en dergelijke was in SQL geschreven. De gebruikersinterface was geschreven in C#. Veel van de logica in Tetris is erg goed in SQL set-based operaties uit te drukken, dus dit was niet eens zo'n gekke implementatie.

Ook de OGD zelf had ook een inzending. Zij demonstreerden een C# versie die normaal voor de interne programmeer-cursussen gebruikt werd. Dit was duidelijk de meest uitgebreide versie met een tetromino editor waar gebruikers zelf nieuwe blokken mee kunnen bouwen en meerdere front-ends voor verschillende UI frameworks. Verder werden nog een compleet functionele aanpak in Haskel gedemonstreerd, een functionele implementatie in Scala met een Java en JavaFX front-end. Twee Javascript versies en een Python Tetris.

Behalve de verschillende programmeertalen was het ook erg leerzaam om verschillen in aanpak te vergelijken. Implementatie-details zoals het roteren van blokken dat op een aantal verschillende manieren geimplementeerd was tot verschillen in methodologie, van TDD tot testloos en van functioneel to OO.

Helaas was er niet genoeg tijd om alle Tetrissen te bespreken, wat dat betreft was het goed dat geen van de drie aanwezige Devnology bestuursleden code had meegenomen, ze hebben het natuurlijk al druk genoeg met het organiseren van dit soort events. Ik zou hun en de mensen van de OGD graag willen bedanken voor een leuke en leerzame avond.

[

 

   ](http://www.flickr.com/photos/devnology/sets/72157623678582675/)

News @devnologynl

@michielovereem @JoyOfCoding OOOOPS! It is June 30th!

21-03-2017 at 09:20

RT @JoyOfCoding: Very early bird tickets available for the fifth anniversary conference! Check out our new web site and order yours https:/…

09-03-2017 at 08:47

@JeroenSoeters The jury’s still out on that one. Come and talk to us in April :)

06-03-2017 at 15:27

Qwan 5dff39510bacfcefb54e89f953eddfc1a7a21185b7128d96ff6b466f56acb6d9
Macaw 06e9331a5321067b592bf45ea39db7df6792dc976000d24d3ee4043d99203514
Finalist e304343cdbeb0996cc1e7a26527993a5fa2db87ca53a81fb15dca22a35d7f28c

Devnology is a non-profit organisation and thus depends on sponsors. Thanks to our wonderful sponsors all Devnology events are free!