Den store Checkers-AI-compoen er den andre av det som forhåpentligvis vil være mange konkurranser for datainteresserte studenter, arrangert av NTNU Gabongforening. Konkurransen handler om å lage en kunstig intelligens (AI) som spiller spillet checkers best mulig. For å gjøre det hele enda mer spennende arrangerer vi en checkers-liga der alle deltakende AI-er vil spille mot hverandre for å avgjøre hvilken som er best. Konkurransen er åpen for alle datainteresserte studenter og elever som vil delta.
Konkurransen varer til søndag 26. august 2012 klokken 06:00. Innen da må ditt ferdige program være sendt til aicompo2011@gmail.com.
Regler for checkers kan du finne her: http://www.englishdraughts.co.uk/handbook.htm. Kampene spilles med three-move-restriction-settet fra John Savard's Home Page.
AI-ene spiller mot hverandre i en round robin checkers-liga. To AI-er vil møtes 6 ganger, med startfordel annenhver gang.
Ved likt antall poeng sees det på færrest antall trekk totalt..
Det blir premiering til de tre beste i ligaen.
Kampene vil bli gjennomført av programmet checkers.py. Alt dere skal lage er et program som tar brettet og den fargen som skal plasseres inn som en 34 tegn lang tekststreng og gir ut et trekk på Portable Draughts Notation som angir hvor du ønsker å spille din brikke.
Input til AI vil altså være en lang tekststreng der . (ASCII #46) markerer tomme felt, o (ASCII #111) markerer hvit mann, O (ASCII #79) markerer hvit konge, x (ASCII #120) markerer svart mann, og X (ASCII #88) markerer svart konge. Strengen vil slutte med , (ASCII #44) etterfulgt av X eller O for å markere hvilken farge AI-en spiller. Feltnummereringa begynner fra svart sitt nedre høyre hjørne.
Brettet:
#=================#
| x x x x |
| x x . x |
| x x . x |
| . . . . |
| . . o . |
| o . o o |
| x . o o |
| o o o o |
#=================#
Ved O sin tur gir tekststrengen:
xxxxxx.xxx.x......o.o.oox.oooooo,O
Dersom du så ønsker gjøre trekket slik at neste brett blir slik:
#=================#
| x x x x |
| x x . x |
| x x . x |
| . . . . |
| . . o . |
| o o o o |
| . . o o |
| . o o o |
#=================#
Må output se slik ut:
29-22
Eksempel på AI-er ligger her randomAI.py.
For å teste dette kan du legge to AI-er og checkers.py i samme mappe på en maskin som kan kjøre både python og språkene til bottene. Du kjører det hele f.eks. slik:
python checkers.py "python random.py" "java random"
Vi anbefaler f.eks. å kjøre det på serverene til PVV som har installert de aller fleste brukbare programmeringsspråk i tillegg til en del ubrukelige. Dersom noen ikke får til å kjøre det på noen av sine egne maskiner kan de låne serverplass hos Rune.
I tillegg kan det opplyses at:
Output fra kommandoen "gcc -v":
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.5 (Debian 4.4.5-8)
Bidrag til konkurransen leveres som kildekodevedlegg til aicompo2011@gmail.com senest søndag 26. august kl 06:00. Lever gjerne også kompilert kode, men det viktigste er å ha med kildekoden.
Lykke til!