alea iacta est – Teil 3
Dieser Beitrag wurde vor über 3 Monaten veröffentlicht. Die darin beschriebenen Informationen sind mit Vorsicht zu geniessen, da sie bereits veraltet oder nicht mehr gültig sein könnten. Solltest du von Neuerungen oder Verbesserungen wissen, so freue ich mich über einen klärenden Kommentar.So nun geht es in die dritte Runde!
Mein Bot ist fertig und hat bereits die ersten Testläufe absolviert. Begonnen habe ich auf dem offiziellen Server, doch dummerweise ist dieser mehr als nur langsam. So kann es da problemlos mal vorkommen, dass man 15 Minuten auf ein neues Spiel wartet.
Doch glücklicherweise hat ein findiger Mitstreiter eine in Ruby implementierte Serverkopie geschrieben und veröffentlicht. Damit können problemlos 10 Spiele pro Minute gespielt werden und ist somit für Tests viel besser geeignet.
Erreichbar ist dieser Server unter:
1 | telnet littleforumpeople.com 3333 |
Mein Bot selbst hat sich eine bereits eine nicht allzuschlechte Statistik erarbeitet:
Gewonnen: 2258
Verloren: 1542
Spiele: 3800
Daraus ergibt sich eine Erfolgsquote von ganzen 59.4%, wodurch er problemlos mit den Besten mithalten kann
Der Bot selbst ist relativ einfach aufgebaut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #!/bin/bash #------------------------------------------------------------------------------ # Author: Patrick Schmid # Web: http://blog.encodingit.ch # Version: 1.1 # Changes: - Grundversion (13.8.10) # - Script umgestellt auf NC-Version (16.8.10) #------------------------------------------------------------------------------ # Umgebung festlegen name="encodingit" # mein Name active=0 # Nicht mein Zug zaehler=0 function play { # Spielfunktion # Dies müsst ihr selbst machen ;) } while read command a1 a2 a3 do case $command in HELO) echo "AUTH $name Ich bin bereit!" ;; TURN) play $a1 $a2 ;; THRW) if [ "$active" = "1" ] then if [ "$a1" = "6" ] then active=0 fi else if [ "$a1" = "6" ] then active=1 fi fi ;; WIN|DEF) echo "$command" >> log exit 0 ;; *) echo "AUTH $name Ich bin bereit!" ;; esac done |
Ich denke ihr werdet verstehen, dass ich die Play-Funktion erst nach dem Abgabetermin veröffentliche.
Gestartet wird das Script via netcat oder ncat:
1 | sudo ncat -v -e ./wettbewerb.sh littleforumpeople.com 3333 |
Ich wünsche euch viel Spass beim würfeln.




Pingback: Nachtrag zum Programmierwettbewerb bei Linux-Magazin - deesaster.org