Nederlands (NL-nl)English (United Kingdom)
Verslag Tetris codefest
Written by freek   

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.


     


Trackback(0)
Comments (0)Add Comment

Write comment
You must be logged in to post a comment. Please register if you do not have an account yet.

busy
 

Meetings

Prijzen sponsors

JetBrains logo



Pictures

Bekijk alle foto's van Devnology op Flickr.

Why meet up?

Devnology meetings are aimed to bring together passionate developers to exchange ideas and experience, to discuss and network - geek to geek.

About us

We focus on concepts of software development. For new developments we will digg into the underlying principles and concepts and try to place this in a broad perspective of existing platforms and solutions. Read more...