Intro
Projekt
Propozície
Geroji
Zápasy
Linky


Kto a ako sa môže zaregistrovať?
Čo by mal obsahovať registračný email?
Môžem svojho robota zdokonaľovať počas projektu?
Môžem poslať viac rôznych robotov?
Musím okomentovať každý riadok?
Nevobtáhne iný účastník Vojny robotov môj zdroják?
Môžem poslať skompilovaný paklík class alebo jar?
Môžem si pripraviť družstvo inteligentných robotov?
Aké sú rozmery hracej arény a na koľko zápasov sa bojuje?
Aký software potrebujem a ako sa to všetko inštaluje a spúšťa?
Moj správca školskej siete mi nechce nainštalovať Linux.



Kto a ako sa môže zaregistrovať?

Zaregistrovať sa môže každý občan vo veku 6-120 rokov tak, že pošle registračný email na adresu robocode.wars@szm.sk


Čo by mal obsahovať registračný email?

Meno, vek, emailovú adresu a školu autora-programátora. Ako prílohu treba poslať zdrojový súbor s príponou java robota-geroja.


Môžem svojho robota zdokonaľovať počas projektu?

Áno, vylepšenie stručne uviesť ako komentár na začiatku zdrojáku. Takto vylepšenú verziu (s príponou java) treba opäť zaslať emailom na adresu robocode.wars@szm.sk s poznámkou, že robota treba aktualizovať v zozname. I robota v druhej etape možno ďalej zdokonaľovať.


Môžem poslať viac rôznych robotov?

Áno.


Musím okomentovať každý riadok?

No každý riadok zase nie, také ukončenie bloku } asi komentár nepotrebuje, ale v každom prípade komentármi nešetri. Ideálne je okomentoveť každý logicky súvisiaci blok príkazov, každú metódu, kľudne aj každý príkaz. Ak zdrojový súbor nebude okomentovaný alebo bude komentár v inom ako slovenskom jazyku, nebude robot do súťaže pripustený!


Nevobtáhne iný účastník Vojny robotov môj zdroják?

V prvej etape nie. V druhej etape to je celkom pravdepodobné (ak tvoj robot bude dobrý). Druhá etapa súťaže je založená práve na tom, že každý si môže prezrieť zdrojáky všetkých ostatných. Viac hláv, viac rozumu.


Môžem poslať skompilovaný paklík class alebo jar?

Nie.


Môžem si pripraviť družstvo inteligentných robotov?

Pripraviť môžeš, do súťaže ale družstvo neposielaj. Podľa pravidiel sú v aréne vždy iba dvaja súperiaci roboti. Ak by sa však s programátormi družstiev (umelá inteligencia, neurónové siete, distribuované systémy) vrece roztrhlo, načim podumať nad pokračovaním projektu v ďalšom školskom roku, napríklad ako Vojna robotických družstiev ...


Aké sú rozmery hracej arény a na koľko zápasov sa bojuje?

Rozmery sú 600x600. Bojov bude neúrekom, každý robot sa stretne s každým a to v desiatich kolách. Ak sa zaregistrujú dvaja roboti, bude jeden zápas (10 kôl). Ak sa zaregistrujú traja roboti, budú tri zápasy (30 kôl). Ak sa zaregistrujú štyria roboti, bude šesť zápasov (60 kôl). Ak sa zaregistrujú piati ... (toto nechávam na domácu úlohu).


Aký software potrebujem a ako sa to všetko inštaluje a spúšťa?

Toto nechávam tiež na domácu úlohu. Pomôže pravidelná névšteva http://www.root.cz , http://www.linux.sk , http://www.abclinuxu.cz , http://www.linuxzone.cz a tak podobne.


Jedno z možných riešení domácej úlohy:

  • Poprosím správcu školskej siete, aby nainštaloval na žiacke stanice OS Linux.
Správca počas troch dní stiahne v práci ISO imága nejakej user friendly (klikacej) distribúcie, napr. Mandrake Linux 9.2 zo stránky ftp://ftp.fi.muni.cz/pub/linux/mandrake/iso/ a napáli ju na tri cédéčka. Povolí v BIOSE bootovanie z CD-ROM, vloží do mechaniky prvé cédéčko a vytvorí príslušné diskové partície (swap, ext3) a nainštaluje nejaké základné balíky, konzolové a vývojové nástroje a nejaký ten X-Window (napr. KDE, GNOME, BlackBox, ...). Predpokladám, že ghost imágo windowsáckej partície má urobené, ale zase až tak o veľa by neprišiel. Tiež si spraví bootovaciu disketku a nainštaluje LILO (alebo Grub).

  • Vyjadrím správcovi siete svoje uznanie a radosť z jeho práce a poprosím ho, ako roota, o inštaláciu Java Development Kit paklíka.
Správca, root, opäť sťahuje zo stránok http://java.sun.com/j2se/1.4.2/download.html spustiteľný bin súbor (napr. j2sdk-1_4_2-nb-3_5_1-bin-linux.bin) a paklík dokumentácie (napr. j2sdk-1_4_2-doc.tgz). Vhupne do konzoly a jede ...

su
./j2sdk-1_4_2-nb-3_5_1-bin-linux.bin
cp j2sdk-1_4_2-doc.tgz
/usr/local/j2sdk_nb/j2sdk1.4.2/
pushd /usr/local/j2sdk_nb/j2sdk1.4.2/
tar -xzf j2sdk-1_4_2-doc.tgz
rm -v j2sdk-1_4_2-doc.tgz
popd
exit

Počas inštalácie správca v klikacom inštalačnom grafickom okne určí cieľový adresár ako /usr/local/j2sdk_nb/ a  potom ešte z konzoly skopíruje a roztaruje paklík dokumentácie. Spolu to zhltne asi 230MB na disku, tak je lepšie, keď to urobí root do všeobecne prístupného adresára na čítanie, ako by som si to mal inštalovať sám niekde do svojho /home/ja/j2sdk_nb/. To by bolo asi od správcu všetko, dosť sa chudák nabehá za "modravejúcimi sa" Windowsámi, zásadnými výnimkami a nepovolenými operáciami.

Cesta k spustiteľným súborom bude:
/usr/local/j2sdk_nb/j2sdk1.4.2/bin/

Cesta k dokumentácii bude:
/usr/local/j2sdk_nb/j2sdk1.4.2/docs/index.html

Zároveň mám nainštalované aj IDE grafické vývojové prostredie netbeans-3.5.1, ktoré ale zatiaľ nechám na pokoji. Je to už také dospelácke prostredie a ja sa chcem len hrať. Spúšťa sa skriptíkom:
/usr/local/j2sdk_nb/netbeans3.5.1/bin/runide.sh

  • Stiahnem a nainštalujem si prostredie Robocode
Zo stránky ftp://dragon.adtech.internet.ibm.com/pub/robocode stiahnem inštalačný súbor (napr. robocode-setup-1.0.6.jar), vhupnem do konzoly a jedným riadkom spustím inštaláciu do adresára /home/ja/robocode/ v grafickom klikacom okne:

/usr/local/j2sdk_nb/j2sdk1.4.2/bin/java -jar robocode-setup-1.0.6.jar

Na záver inštalácie ma inštalátor informuje, že prostredie Robocode spustím skriptíkom ./robocode.sh z adresára /home/ja/robocode/ ale takto by som asi ďaleko nezašiel.

  • Vytvorím si vlastný spúšťací skriptík
Ak si v adresári /home/ja/robocode/ vypíšem súbory aj s atribútmi príkazom ls -Fal zistím, že súbor robocode.jar nie je spustiteľný, má atribúty -rw-r--r-- teda 644. Zmením mu atribúty, aby bol pre mňa spustiteľný, príkazom chmod 744 robocode.jar

Keďže som žiak lenivý, tehní sa mi furt vypisovať jedným riadkom cestu k spustiteľnému java súboru:

/usr/local/j2sdk_nb/j2sdk1.4.2/bin/java -jar /home/ja/robocode/robocode.jar

Vyriešim to vlastným skriptíkom, napríklad v textovom editore vi

vi spuscirobocode.sh
i
#!/bin/bash
/usr/local/j2sdk_nb/j2sdk1.4.2/bin/java -jar /home/ja/robocode/robocode.jar
[Esc]
:wq
chmod 744 spuscirobocode.sh

Príkazom vi spuscirobocode.sh otvorím z konzoly textový editor s prázdnym súborom spuscirobocode.sh (shellovské skripty mávajú zväčša príponu sh). Stlačením tlačice i vojdem do režimu vkladania (insert) a píšem vlastný text. Prvý riadok #!/bin/bash označuje, ktorý shell si prajem spustiť (Bourne again shell v adresári /bin/) a druhý riadok to, čo sa má urobiť (je to ten istý príkaz, čo sa mi pred chvíľou tehnilo furt písať). Z vkladacieho režimu vyjdem stlačením tlačice Esc a súbor uložím a zárovaň ukončím editor vi sekvenciou :wq a ešte treba z konzoly nastaviť atribút súboru rwx pre mňa, usera, r-- pre skupinu, group a r-- pre ostatných, other, čo je práve ono číslo 744 (7 pre u (4+2+1), 4 pre g i o (4+0+0)). Jednotlivé písmenká znamenajú asi toto: r (čítať-22), w (zapisovať-21), x (vykonať-20)

Teraz mi stačí napísať  ./spuscirobocode.sh alebo len ./s a stlačiť tlačicu Tab

Ak budem v Robot Editore vytvárať prvého robota, láskavo povolím inštaláciu Jikes a v žiadnom prípade v mene robota nepoužijem diakritiku!


Moj správca školskej siete mi nechce nainštalovať Linux.

Vymeň správcu. Nainšaluj si Linux doma. Ak sa správca nedá vymeniť a doma nemáš PC, stiahni si software pre Windowsy. Javovské aplikácie sú interpretované a bežia na akejsi virtuálnej mašine (JVM), ktorá je dostupná pre rôzne architektúry PC a OS, teda aj pre Windowsy.