- Plansza na której toczy się rozgrywka to kwadrat n*n o n będącym liczbą nieparzystą niewiększą od 999.
- Plansza to zbiór komórek które mają być później zapełnione przez graczy pdczas kolejnych ruchów.
- Nie wszystkie komórki muszą być wstępnie puste. Program Sędziowski może (na życzenie jego Operatora) planszę niektóre komórki wypełnić.
-
Przykładowy wygląd planszy startowej:
.01234. 0|X X X| 1| X | 2| X | 3| X | 4|_____|
- Gracze (algorytmy walczące) rozstawiają na przemian prostokąty o wymiarach 2x1 pionowo lub poziomo na planszy.
- Rozgrywka kończy się gdy nie da się już postawić żadnego nowego prostokąta.
-
Sędzia przesyła pierwszemu graczowi informację o rozmiarze
planszy, a także o komórkach już zapełnionych przez system.
np. Plansza rozmiaru 7x7 o zapełnionych komórkach
o indeksach (2,3) i (4,5).
7_2x3_4x5
-
Gracz przesyła informację zwrotną o przyjęciu komunikatu. Ma na to 1s.
OK
-
Sędzia przesyła drugiemu graczowi tą samą informację.
7_2x3_4x5
-
Drugi gracz ma również sekundę na odpowiedź.
OK
-
Sędzia przesyła pierwszemu graczowi informacje o rozpoczęciu gry.
START
-
Gracz ma 0.5s na odpowiedź jaki ruch ( wstawienie prostokąta 2x1 ) zamierza wykonać.
np. wstawienie na plaszę prostokąta na komórki (1,2) , (2,2).
1x2_2x2
-
Sędzia wysyła drugiemu graczowi informację o ruchu poprzedniego.
1x2_2x2
-
Gracz ma 0.5s na wykonanie swojego ruchu.
3x0_3x1
-
Sędzia przesyła pierwszemu graczowi informację o ruchu poprzedniego.
3x0_3x1
- itd. aż któryś z graczy spełni warunki przegranej.
- Przekroczenie dozwolonego czasu przez gracza powoduje jego automatyczną przegraną.
- Gracz, który wykonał ruch nieprzewidziany w zasadach automatycznie przegrawa.
- Jeżeli gra zakończyła się w sposób przewidziany w Regulaminie, przegrywa gracz, który miałby wykonywać następny ruch (czyli ten, który nie może już wykonać ruchu).
- To sędzia uruchamia graczy.
-
Sędzia będzie posiadał specjalny folder z podfolderami
przeznaczonymi na pliki graczy. Takie pliki będą przede wszystkim dwa.
Sam program i plik konfiguracyjny info.txt
(komenda uruchomieniowa) (nick gracza)
- Sędzia musi się uruchamiać na Windowsie.
- Musi być możliwość ręcznego przejrzenia przebiegu rozgrywki (np. wywołaie kolejnego ruchu).
- Musi być możliwość ręcznego ustawiania rozmiarów planszy.
- Sędzia musi mieć możliwość przeprowadzenia rozgrywki automatycznie.
- Musi być możliwość przejrzenia historii przebiegu rozgrywki.
- Sędzia musi umieć automatycznie przeprowadzić turniej każdy z każdym (po dwie gry, raz jeden raz drugi) liczy kto ile ma zwycięstw, kto ile porażek)
- Program sędziowski ma opcję wybrania ręcznego początkowych zajętych komórek lub je losuje.
Program został stworzony jako projekt w ramach przedmiotu "Algorytmy i struktury danych" na Politechnice Warszawskiej.
Jednym z zadań w ramach tego przedmiotu było stworzenie programu walczącego, sztucznej inteligencji, która miała konkrurować z innymi, stworzonymi przez kolegów z grupy dziełami w ramach jakiejś wcześniej obranej gry.
Głównym problemem jednak było przeprowadzenie serii takich pojedynków, weryfikacja poprawności działań i podsumowywanie wyników. W tym celu miał zostać zaprojektowany osobny program, który obsłuży wszystkie pozostałe i pozwoli na obserwowanie przebiegu walk.
To są właśnie zadania stworzonego przez nas program - Programu Sędzioweskiego.
Sędzia komunikuje się z Graczami za pomocą ich standardowych wejść i wyjść ( stdin , stdout ).
Po zakończonej rozgrywce Sędzia wysyła:
STOP
do wszystkich graczy (Program Gracz powinien się zakończyć, ale Sędzia profilaktycznie dodatkowo zabija proces.).