Lag Paxport vann Crazy Snake

2011-05-05 Mikael Boman

I tisdags samlades tretton lag på Citerus Hackers' Night - Crazy Snake edition för att göra upp om vem som kunde programmera den smartaste reptilhjärnan. Det vinnande laget använde sig av en klurig algoritm för att maximera fruktintaget.

Minns du spelet Snake? Det gör i princip alla som någon gång har haft en Nokiatelefon, inklusive vi på Citerus. Inte utan en liten gnutta nostalgi bestämde vi oss därför för att ordna en tävling under namnet Hackers' Night - Crazy Snake edition. I korthet gick tävlingen ut på att skapa en orm som på en spelplan med andra ormar kunde äta så mycket frukt som möjligt och samtidigt undvika att krascha in i något - sig själv, en annan orm eller en vägg (de fullständiga tävlingsreglerna finns här). Lagen fick tillgång till ett API och en spelmotor som vi på Citerus programmerade.

Totalt samlades tretton lag med upp till tre medlemmar för att göra upp, påhejade av över 20 åskådare. Det blev tidigt tydligt att lagen hade förberett sig olika mycket; en del inte alls och medan andra hade listat ut hur spelmotorn borde fungera och byggt en egen version att testa sin idéer mot.

En del hade svårt i första heatet och ett lag lämnade till och med walk over till första heatet då de inte hunnit med att skapa en fungerande ormhjärna. Efter detta började det bli mer spännande och för varje heat så blev det fler bra hjärnor och därmed jämnare heat. Laget VSG valde till exemepl att köra på en och samma ormhjärna i alla heat medan Paxport förfinade sin kontinuerligt.

Resultat

Finalen blev en spännande uppgörelse som slutade på följande sätt:

1:a Paxport Systems feat. Itello Joel Jonsson, Henrik Ygge, Dmitry Palagin
2:a Grand Champions Jens Ståhl, Malin Ljungh och Jonas Samuelsson
3:a VSG Johan Ringdahl, Magnus Rundlöf

 

Finalen avgjordes när två av ormarna kraschade och Paxport därmed kunde promenera, eller snarare ringla, hem segern i ensamt majestät. Grattis Paxport till en välförtjänt seger!

Kort om vinnaralgoritmen

Paxport beskrev själva sin sista version, som de körde i heat 3 och finalen, som bättre på att äta frukt men lite sämre på överlevnad än tidigare versioner. Vinnarhjärnan gjorde A*-sök mellan alla maskars huvud och alla frukter och bestämde sedan "mest attraktiva frukt att navigera mot" som den närmaste frukt som garanterat kan nås innan någon av motståndarna kan nå den. Till detta fanns också en panic-move-strategi när någon motståndares huvud var nära, samt analys för att inte åka in i för små konkava utrymmen.

Slutligen...

...vill vi tacka alla lag och åskådare som gjorde detta till en kväll som var både lärorik och rolig. Ju mer vi satte oss in i att programmera ormhjärnor, desto mer insåg vi hur komplex och nyanserad det är och att vinnaralgoritmen skulle kunna gå att förbättras ytterligare. Till exempel kan man tänka sig en ormhjärna som håller koll på vilka av de andra ormarna som gör avsteg från deras respektive bästa/säkra vägar och komma ihåg dessa som dumma ormar; detta i sin tur skulle kunna göra att man ibland väljer att sikta på frukt som en dummare orm har närmare till. Vår spelplan var 50*50 rutor, men på en större spelplan med fler ormar (vi hade maximalt 6 ormar på plan samtidigt) skulle man eventuellt behöva snabba upp sökalgoritmen till en naiv sökning mellan närmsta frukt och de andra ormarnas frukt.

Tack också för alla uppmuntrande tweets före, under och efter tävlingen. Inom kort kommer vi att publicera fler bilder och en video från kvällen, så håll utkik!

 



Kommentera artikeln

Din kommentar

Hantering: Publiceras inte. Vi delar aldrig din e-post med tredje part och vi skickar aldrig oönskad reklam.

Karin Edsröm, VD på Citerus

Vi söker konsulter!

Vi vet att man kan förändra världen med hjälp av mjukvara. Vill du vara med?  Bli en av oss →

 

Inspiration via e-post

  Artiklar om framgångsrik mjukvaruutveckling
  Information om nya kurser och seminarier

Du kan enkelt säga upp din prenumeration om du ändrar dig. Vi lämnar aldrig ut e-postadresser till tredje part.
Läs mer om hur vi hanterar personuppgifter.

 

 

 

Om Citerus

Citerus hjälper företag att lyckas med sin mjukvaruutveckling. Vi erbjuder metodinförande, kurser och träning samt systemutveckling och kan dessutom avlasta våra kunder genom ta oss an både delprojekt och hela projektåtaganden. Allt för att de ska kunna hålla en hög innovationstakt och skapa smarta lösningar som ökar deras konkurrenskraft. Citerus kunder har den gemensamma nämnaren att de ser mjukvaruutveckling som affärskritiskt. Läs mer →

monthly
0.5