Szachy przez sieć - matrix.umcs.lublin.pl

Transkrypt

Szachy przez sieć - matrix.umcs.lublin.pl
Szachy przez sieć
8 grudnia 2009
Ogólnie Elementy programu:
• Plansza
• Czat
• Zaproś - zaproszenie do gry
• Historia - historia gry
• Ruch - wybór ruchu
Plansza Szachownica - siatka dwukolorowa 8x8 pól. Obok szachownicy należy umieścić
w poziomie od ”a” do ”h” (od lewej do prawej), w pionie od ”8” do ”1” (z góry na dół).
Zasady gry w szachy Tutaj są opisane zasady poruszania się po planszy kolejnych figur, cele gry i sposoby zakończenia. Pod tym adresem znajduje się zapis szachowy, którego
należy używać, przy komunikacji graczy.
Poruszanie się po planszy
• przeniesienie figury myszką nad wybrane pole. Pola, na których gracz może postawić figurę należy podświetlać. Po upuszczeniu figury na pole należy zapisa ruch w
Historii i przesłać go do drugiego gracza.
• wpisanie do okna Ruch odpowiedniego ruchu (notacja algebraiczna).
Notacja ruchu Ruchy zapisuje się w dwóch ponumerowanych kolumnach. W pierwszej
z nich zapisuje się ruchy białych, a w drugiej czarnych. Najpierw zapisywany jest symbol
przesuwanej figury, następnie pole, na którym stoi dana figura, dalej łącznik (-), a następnie pole, na które przesuwamy figurę. Jeżeli ruch wykonywany jest pionem, pomijamy
oznaczenie figury.
1. f2-f4
e7-e5
2. f4xe5 d7-d6
3. e5xd6 Bf8xd6
Ruch Okno do wpisywania ruchów w postaci algebraicznej - po zatwierdzeniu ruchu
(przycisk Zatwierdź), ruch zapisuje się do Historii ruchów i wysyłany jest do aplikacji
drugiego gracza. Niezbędne jest sprawdzanie poprawności ruchów w notacji algebraicznej
- jeśli zapis nie jest poprawny, powiadamiamy o tym gracza - nie można zatwierdzić
niepoprawnego ruchu.
Historia Część okna z wypisaną historią kolejnych ruchów w postaci tabeli
białe czarne
f2-f4
e7-e5
f4xe5 d7-d6
e5xd6 Bf8xd6
Należy umożliwić z menu zapis historii do pliku.
Rozszerzenia Historia z wybieralnym wierszem - jeśli użytkownik wybierze linię w
historii gry, na planszy pojawi mu się ustawienie tuż przed ruchem białych z danej linii.
Zaproszenie Wybrane z menu Zaproszenie powoduje pojawienie się okna na adres IP,
na którym, na wybranym porcie, nasłuchuje druga aplikacja. Można wybrać adres jabberowy.
Czat Korzystając z konta jabberowego lub po IP (wtedy tylko z jedną osobą).
Serwer może być uruchomiony na dowolnym komputerze lub może być wbudowany w
aplikację i przy uruchomieniu z opcją, np. –run-server, uruchomi się aplikacja kliencka z
dodatkowym serwerem. Może być także odrębną aplikacją, służącą jedynie do tego.
Protokół Komunikacja klient-serwer będzie polegała na przesyłaniu plików XML, w
których będzie zawarta informacja o kliencie źródłowym (jaki gracz wykonuje ruch), docelowym (drugim graczu, który ten ruch ma przyjąć), o ruchu (notację algebraiczną można
w tym wypadku rozbić na figury, pozycję wyściową i docelową czy tp.).
Serwer ruchów i serwer czatu to powinien (choć nie musi) być ten sam serwer - protokół
powinien to uwzględniać.
Ogólne pomysły Jeśli ktoś będzie czuł się na siłach, może np. zrobić szyfrowanie ruchów poprzez klucz prywatny i dekodowanie kluczem publicznym takiego ruchu - pozwoliłoby to na stosunkowo pewną identyfikację wysyłającego gracza i możliwość sprawdzenia,
czy ktoś się nie podszywa pod gracza. Oczywiście można to też próbować robić prościej.
Wyniki i cała historia może być składowana w bazie danych. Dla okrojonej wersji
dopuszczalne jest by była dostępna jedynie historia aktualnej (także po zakończeniu) gry.
2