alea iacta est – Teil 3
Posted in Programmieren, Wettbewerb on August 19th, 2010 by Patrick – 30 CommentsFortsetzung zu alea iacta est – Teil 1 und alea iacta est – Teil 2
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. ![]()


Willkommen auf meinem Blog über Informatik, Technik und Linux.