Free-Hack Coding Contest Frühjahr 2017
Hallo und herzlich willkommen!
Ich möchte euch herzlich einladen am diesjährigen Coding-Contest 2017 teilzunehmen! Dieser Contest richtet sich insbesondere auch an alle Coding-Anfänger! Also wenn du dich hier gerade angesprochen gefühlt hast, dann hör nicht auf zu lesen! Bei diesem Contest hat jeder die Chance zu gewinnen!
Die Aufgabe:
Die Aufgabe besteht darin, einen voll netzwerkfähigen Bot für das Spiel "Mau Mau" zu programmieren. Ziel ist es, dass später die geschriebenen Bots, im K.O.-System, gegeneinander antreten können. Da bei "Mau Mau" auch viel Glück eine Rolle spielt, kann hier prinzipiell jeder gewinnen.
Kurzfassung:
Der Bot verbindet sich zu einem Server (im nachfolgenden "Dealer" genannt) und erhält von diesem seine Handkarten und wird durch das Spiel geführt. Der Dealer kontrolliert die getätigten Züge und gibt zu jedem Zug Feedback. Die Kommunikation findet ausschließlich in JSON statt.
Dies muss euer Bot grob können:
- Der Bot muss sich mit der Serveranwendung verbinden und authentifizieren können.
- Der Bot wartet bis er am Zug ist und reagiert auf die aktuelle Spielsituation mit einem korrekten Zug.
- Der Bot stellt selbstständig fest, ob er eine Karte legen kann und zieht eine Karte, wenn dies nicht der Fall ist.
- Der Bot setzt eine Runde aus, wenn dies der Spielverlauf erfordert (beispielsweise wurde eine 8 gelegt).
- Der Bot zieht selbstständig zwei Karten, wenn dies der Spielverlauf erfordert (beispielsweise wurde eine 7 gelegt).
- Der Bot verwaltet über das gesamte Spiel seine Karten selber.
Die Serveranwendung steht euch während der Entwicklungszeit als Download zur Verfügung, damit ihr nach Belieben alles offline ausprobieren könnt! Die Anwendung ist in Java geschrieben und sollte damit jeder ohne Probleme auf seinem Rechner zum Laufen kriegen. Ihr findet die Anwendung und alle Details zum Contest als Git-Repo hier:
https://github.com/Barny-Blog/Free-Hack-Coding-Contest
In diesem Repository befindet sich mit Absicht nur eine JAR, da der Code nach Abschluss des Contests erst von uns in diesem Repository veröffentlicht wird. Des Weiteren befindet sich hier auch eine vollständige Dokumentation zum Contest und zur Aufgabe! Da ich nicht alles doppelt schreiben möchte, könnt ihr euch falls ihr Interesse habt dort mehr Informationen holen.
Die Programmiersprachen:
Hierbei gibt es keine Einschränkungen durch Vorgaben von unserer Seite! Die Sprache sollte lediglich mit einfachen Socketverbindungen klarkommen. Der Rest liegt bei euch!
Der Zeitraum:
Der Contest startet heute (21.03.2017) und geht bis einschließlich dem 22.04.2017. Bis dahin sollten eure Bots funktionsfähig sein.
Der Ablauf:
Ihr habt bis zum oben genannten Zeitpunkt Zeit eure Bots fertigzustellen. Die Auswertung findet dann am nachfolgenden Tag (23.04.2017, Uhrzeit wird noch bekannt gegeben) statt. Hierbei lasst ihr euren Bot von Zuhause aus laufen und spielt gegen andere Entwickler. Zur Auswertung wird exakt die Serveranwendung verwendet mit der ihr euren Bot entwickelt habt und die euch ab heute zur Verfügung steht. Wer gegen wen spielen wird, wird im Laufe des Contests bekannt gegeben. Ein "Match" besteht aus 11 Spielen. Wer die meisten Spiele davon gewinnt, der gewinnt das Match und kommt eine Runde weiter. Der Verlierer scheidet aus. Es ergibt sich daraus in jedem Fall einen Gesamtsieger.
Die Preise:
Natürlich gibt es auch was zu gewinnen! Der Gewinner erhält nachfolgenden Preis:
- 25€ Amazon Gutschein
- Nickname in gewuenschter Farbe (darf nicht belegt sein)
- Coding Contest Winner Benutzertitel
- Free-Hack Mail-Adresse mit einer Weiterleitung auf die eigene, private Mailadresse
Ihr seht also, dass sich das Mitmachen lohnt!
Achtung: Die Preisausschüttung findet nur statt, wenn der Sieger seinen verwendeten Code auf unserem Git-Server veröffentlicht, damit jeder etwas davon hat!
Anmerkungen:
- Bei diesem Contest soll der Spaß und das Lernen im Vordergrund stehen! Demnach ist es auch erlaubt zum Thema Threads zu eröffnen und darüber zu sprechen! Es sollte sich jedoch jeder darüber im Klaren sein, dass der Gewinn nicht geteilt werden kann.
- Die Serveranwendung wurde intensiv auf Fehler von uns getestet. Dennoch kann sich immer mal was einschleichen. Findet ihr also einen Fehler, dann bitte ich euch, mir dies mitzuteilen. Die Fehler werden dann noch vor der Auswertung behoben! Alle Änderungen werden aber auch in diesem Thread bekannt gegeben, damit jeder weiterhin die gleichen Chancen hat.
- Der Code der Serveranwendung wurde von mir obfuscated. Wenn ihr also Reversen wollt, dann könnt ihr das tun. Ich versichere euch, dass es einfacher (und vor allem fairer den anderen gegenüber) ist, wenn ihr den Bot selber schreibt. Des Weiteren habe ich den eigentlichen Botcode, den ich zur Entwicklung verwendet habe, entfernt. Der Bot ist demnach rotzeblöd.
- Ansprechpartner bei diesem Contest ist prinzipiell das FH-Team. Sollte also etwas unklar sein, dann meldet euch! Auch wir machen das nicht regelmäßig und Fehler oder Missverständnisse können vorkommen!
Ich möchte alle Leute die teilnehmen möchten bitten dem FH-Team dies zeitnah mitzuteilen! Dies ist zwingend erforderlich, weil vor der Auswertung die Spieler zugeordnet werden müssen.
Ansonsten möchte ich an dieser Stelle allen viel Spaß und Erfolg wünschen!
Viele Grüße,
Barny
Nachträglich hinzugefügte Informationen:
- Damit der Server eure gesendeten Nachrichten verarbeitet, müsst ihr diese mit einem abschließenden Linebreak absenden. Dies habe ich auch nun der Doku in Git hinzugefügt. Beispiel:
Code:sendMessage("bliblablub meine nachricht\n")- Am 23.03.2017 wurde eine neue Version der Serveranwendung ins Git-Repo gepusht. Gefixt worden sind kleiner Fehler die teilweise Netzwerkprobleme verursacht haben. (Fehler gemeldet von Leange)
- Am 24.03.2017 wurde eine neue version der Serveranwendung ins Git-Repo gepusht. Gefixt worden sind kleinere Fehler die teilweise Netzwerkprobleme verursacht haben. Außerdem wurde das parsen der übergebenen Parameter überarbeitet. Es wurden also nur die Bedienung angepasst. (Fehler gemeldet von Easysurfer )
- Am 26.03.2017 wurde eine neue Version der Serveranwendung ins Git-Repo gepusht. Der Server spuckt in seinem Log nun die korrekten Karten aus. Außerdem sendet der Server vor jedem Zug eines Spielers nun die aktuelle "topCard" mit raus. Somit kann man immer wissen, was die aller erste Karte des Spiels war. (Gemeldet von blackberry )
- Am 27.03.2017 wurde eine neue Version der Serveranwendung ins Git-Repo gepusht. Gefixt worden ist ein kleiner Fehler, der durch das Release vom 26.03.2017 enstanden ist. Bitte unbedingt die neue Version herunterladen! Entschuldigt bitte dieses Hin und Her... Im mom alles nen bisschen stressig bei mir...
- Am 28.03.2017 wurde eine neue Version der Serveranwendung ins Git-Repo gepusht. Es wurde nen bisschen an der Performance geschraubt. Bitte die aktualisierte Version verwenden!
- Anmerkung vom 03.04.2017: Liegt als erste Karte die aufgedeckt wird ein Bube, so ist die Jokerfunktion vertan. Das bedeutet, dass auf diese Farbe entweder die Farbe des Buben oder ein Bube selber gelegt werden darf. Es wird sich weder eine Farbe automatisch gewünscht und vorgegeben, noch darf der nächste Spieler sich eine Farbe wünschen. Das heißt, es muss die Farbe oder das Bild bedient werden. Ich habe diesen Umstand zusätzlich in der Dokumentation vermerkt. (Angemerkt von Easysurfer)
----------------------------------------
Derzeit angemeldete Teilnehmer:
- Dailox
- Leange
- cruzz
- zaub9rwald
- lrg0
- Easysurfer
- wacked
- blackberry