Nederlands (NL-nl)English (United Kingdom)
Verslag Tetris codefest
Gepubliceerd door 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
 

Bijeenkomsten

Prijzen sponsors

JetBrains logo



Foto's

Bekijk alle foto's van Devnology op Flickr.

Waarom bijeenkomsten?

Bijeenkomsten van Devnology zijn erop gericht enthousiaste ontwikkelaars bijeen te brengen om kennis en ervaring uit te wisselen, te discussiƫren en te netwerken - geek to geek.

Over ons

Vanuit Devnology willen wij vooral kijken naar concepten binnen software ontwikkeling. Als zich nieuwe ontwikkelingen voordoen zullen we vooral kijken naar het concept erachter en deze in een breed kader van eerdere technieken en/of bestaande platformen plaatsen. Lees meer...