Regulamin konkursu "Internetowy Turniej Programów Walczących"
Tekstem pochyłym pisane są komentarze.
I. Zasady ogólne
- Organizatorami konkursu pod nazwą "Internetowy Turniej Programów
Walczących", zwanego dalej Konkursem, są Koło Naukowe Informatyków
Uniwersytetu Warszawskiego (KNI UW)
działające przy Wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu
Warszawskiego oraz firma Biuro Usług Technicznych i Handlowych "EKOKAL"
Ryszard Parys.
- Integralną częścią niniejszego regulaminu jest terminarz znajdujący
się na stronie internetowej
http://itpw.mimuw.edu.pl/terminarz.html,
zwany dalej Terminarzem, a także umieszczone poniżej "Zasady organizacji
zawodów"
- Konkurs przeprowadzony będzie w dniach podanych w terminarzu
wyłącznie na stronach serwisu internetowego prowadzonego przez
KNI UW
pod adresem:
http://itpw.mimuw.edu.pl/.
II. Uczestnictwo w Konkursie
- W Konkursie może wystartować każdy z wyjątkiem organizatorów i jurorów Konkursu.
Uczestnictwo w Konkursie jest bezpłatne.
- Uczestnicy powinni rejestrować się w Serwisie pod własnym imieniem i nazwiskiem.
Rejestracja możliwa jest także w trakcie trwania konkursu.
III. Zadanie konkursowe
- Zadaniem uczestników Konkursu jest samodzielne stworzenie
programu rozwiązującego problem opisany
w treści zadania, spełniającego ograniczenia wyznaczone w tym zadaniu, a
także ograniczenia podane w "Zasadach organizacji zawodów" umieszczonych
poniżej.
- Treść zadania zostanie ujawniona w terminie podanym w Terminarzu.
- Wraz z treścią zadania organizatorzy udostępniają uczestnikom program
sędziego umożliwiający testowanie rozwiązań. Posiada on interfejs
graficzny umożliwiający oglądanie przebiegu rozgrywki. Możliwe jest także
uruchomienie rozgrywki z linii poleceń; jest to opisane w pliku
README.html w paczce zawierającej ten program. W paczce znajdują się
przykładowe programy grające w każdym z dostępnych języków
programowania. Do przeprowadzania rozgrywek Konkursu jurorzy używają
innego programu sędziego.
- Do obowiązku uczestnika należy śledzenie działu "Ogłoszenia" na forum,
gdyż mogą tam pojawić się ważne doprecyzowania treści zadania.
IV. Nagrody
- W przypadku założenia przez jedną osobę więcej niż jednego konta
w Serwisie w celu uczestnictwa w Konkursie, osoba taka uzyskuje prawo
wyłącznie do jednej nagrody przewidzianej dla zwycięzców
Konkursu, tylko za ten ze swoich programów, który zajął najniższe miejsce
w Konkursie.
- Oprócz nagród dla zwycięzców Konkursu mogą zostać przyznane dodatkowe
nagrody dla najlepszych uczniów liceum lub gimnazjum.
- Nagrodami w Konkursie są: książki, nagrody rzeczowe oraz koszulki lub kubki
promocyjne "ITPW". Lista nagród podana na stronie jest orientacyjna i
może ulec zmianie.
V. Ochrona danych osobowych
- Uczestnicy Konkursu wyrażają zgodę na przetwarzanie danych osobowych
w rozumieniu ustawy z dnia 29 sierpnia 1997 r. o ochronie danych osobowych
(Dz. U. Nr 133, poz. 833) w celach prowadzenia Konkursu, wyłaniania zwycięzców
i przyznawania, wydawania oraz odbioru nagród.
- Uczestnik ma prawo do wglądu do swoich danych oraz ich poprawiania.
- Podanie danych adresowych niezbędnych do wysłania nagrody jest dobrowolne,
lecz ich niepodanie uniemożliwia otrzymanie nagrody przewidzianej regulaminem
Konkursu.
VI. Przepisy końcowe
- Organizatorzy Konkursu zastrzegają sobie prawo do zmian w niniejszym
regulaminie oraz prawo jego ostatecznej interpretacji.
- Wszelkie niejasności należy zgłaszać do jury poprzez "Forum", działy
"Zadanie konkursowe"
oraz "Pytania techniczne". Jeśli to okazałoby się niemożliwe, można wysłać emaila na adres:
kni@mimuw.edu.pl.
Zasady organizacji zawodów
A. Zasady ogólne
- Przeprowadzone zostaną dwie rundy rozgrywek: Runda Próbna i Turniej.
Runda Próbna umożliwia sprawdzenie swojego programu przed
zakończeniem Konkursu. Kluczowe są wyniki Turnieju.
- W konkursie może pojawić się pewna niewielka liczba programów zgłoszonych
przez organizatorów. Nie biorą one udziału w klasyfikacji, lecz wyniki gier z
nimi wliczają się do punktacji.
B. Zgłaszanie programów
- Aby zgłosić program do Konkursu, uczestnik powinien
wysłać go używając formularza umieszczonego na stronie konkursowej
Serwisu. Jest to jedyny sposób zgłaszania programu.
- Podstawą oceny jest kod źródłowy programu.
- Rozwiązanie powinno składać się z pojedynczego pliku nie większego niż 100 KB.
Nie przeszkadza nam, gdy po kompilacji programu w Javie powstanie
wiele plików wynikowych.
- W każdej z rund biorą udział programy zgłoszone do momentu zakończenia
tej rundy podanego w Terminarzu. W szczególności programy zgłoszone
przed zakończeniem Rundy Próbnej biorą udział także w Turnieju.
- Dla potrzeb Konkursu, za moment zgłoszenia przez uczestnika programu uznaje
się moment, w którym nadesłany formularz zostanie zapisany na serwerze Serwisu.
- Uczestnik Konkursu ma prawo do zgłoszenia co najwyżej 20 programów
(poprawionych wersji programu) do
momentu zakończenia Rundy Próbnej oraz co najwyżej 20 programów od tego
momentu.
Oceniany jest program najpóźniej wysłany, ale nie później niż mówi termin.
C. Wymagania dotyczące programów
- Uczestnicy mogą zgłaszać do Konkursu jedynie programy napisane
w następujących językach programowania: C, C++, Pascal, Java, OCaml.
- Programy powinny wczytywać dane wejściowe ze standardowego wejścia,
a wyniki zapisywać na standardowe wyjście, zgodnie z protokołem opisanym
w treści zadania.
- Programy w C/C++ mogą korzystać jedynie ze standardowych plików
nagłówkowych (zgodnie ze standardem ANSI).
- Programy w Javie powinny zawierać klasę publiczną Gracz, a w niej statyczną metodę
publiczną
void main(String[] args). W wyniku kompilacji
nie może powstać plik Loader.class (klasa Loader jest klasą
pomocniczą uruchamiającą gracza). W treści kodu źródłowego nie
może znaleźć się słowo finalize (jako słowo rozumiemy
maksymalny ciąg liter, cyfr i podkreślników; ma to zapobiegać
deklarowaniu metody finalize).
- Obowiązuje ograniczenie na liczbę wywołań systemowych: 10000 wywołań
pomiędzy kolejnymi ruchami. Proszę więc nie sprawdzać zbyt często
ile czasu upłynęło.
- Programom nie wolno próbować:
- otwierać żadnych dodatkowych plików (np. tymczasowych),
- korzystać z zewnętrznych bibliotek, mogą korzystać tylko z biblioteki standardowej;
wyjątek stanowi biblioteka matematyczna w C/C++ oraz moduł Unix w Ocamlu,
- tworzyć nowych wątków,
- używać wątku Garbage Collectora do wykonywania obliczeń (Java),
- komunikować się ze światem,
- komunikować się z programami innymi niż arbiter,
- zmieniać środowisko wykonania,
- działać destrukcyjnie,
- przeszkadzać przeciwnikowi w grze.
D. Ocena zgłoszonych programów
- Nadsyłane kody źródłowe będą kompilowane następującymi kompilatorami w
wersjach jak podano lub nowszych:
- GCC 4.2.4 (C/C++)
- Free Pascal Compiler 2.2.0
- Sun Java 1.6.0_20
- OCaml 3.10.0
za pomocą poleceń:
- dla C:
gcc -W -Wall -O2 -static abc.c -lm
- dla C++:
g++ -W -Wall -O2 -static abc.cpp -lm
- dla Pascala:
fpc -O2 -XS abc.pas
- dla Javy:
javac Gracz.java
- dla OCamla:
ocamlopt /usr/lib/ocaml/unix.cmxa abc.ml -unsafe -ccopt -static
- Rozwiązania których kompilacja w powyższy sposób zakończy się niepowodzeniem
lub nie zakończy się w sensownym czasie nie podlegają ocenie. Mimo
tego już w momencie zgłoszenia programu poprzedni program przestaje
podlegać ocenie, zatem autor niekompilującego się programu kończy na ostatnim
miejscu.
- Programy będą kompilowane i uruchamiane pod systemem operacyjnym Linux.
- Program będzie miał do dyspozycji 400 MB wolnej pamięci.
E. Ogłoszenie wyników Konkursu
- Bezpośrednio po zgłoszeniu programu zostaną przeprowadzone:
- kompilacja,
- próbne uruchomienie przeciwko programowi przykładowemu oraz
przeciwko kilku zgłoszonym do tej pory programom innych zawodników - w środowisku, w którym będzie oceniany
Konkurs.
Zapis rozgrywek oraz kompilacji zostanie udostępniony uczestnikowi zgłaszającemu program.
Zapisy rozgrywek z programami innych zawodników zostaną udostępnione
zawodnikom biorących w nich udział.
Nie gwarantujemy określonego czasu po jakim to się stanie.
W szczególności niemożliwość szybkiego przeprowadzenia tych czynności nie zwiększa jakichkolwiek praw uczestnika.
- W terminie podanym w Terminarzu zostaną ogłoszone wyniki Rundy Próbnej.
Wtedy każdy uczestnik będzie mógł zobaczyć zapisy (logi) z rozgrywek
wyłącznie z gier przeprowadzonych przez swój program.
- W terminie podanym w Terminarzu zostaną ogłoszone
częściowe wyniki Turnieju: ustalona zostanie liczba X, ujawnione miejsca od
X+1-szego oraz skład pierwszych X miejsc.
- Pełne wyniki Konkursu zostaną udostępnione podczas
uroczystości zakończenia.
- Terminy ogłoszenia wyników są podane orientacyjnie i z przyczyn
technicznych mogą ulec zmianie.
F. Ustalanie kolejności zawodników
- Sposób ustalania kolejności zawodników na podstawie wyników rozgrywek
zostanie podany wraz z treścią zadania.
- Jeśli ten sposób ustalania kolejności doprowadzi do remisu wśród kilku
zawodników, jurorzy mogą przydzielić im miejsca w dowolny wybrany przez
siebie sposób (będziemy się starali aby remisy były mało prawdopodobne,
a jeśli wystąpią to prawdopodobnie ustalimy kolejność remisujących zawodników drogą
losowania).
|