Warcaby angielskie - środowisko badania heurystyk

Lista TODO


1. Tablica transpozycji - rozwinięcie funkcji cięć alfa-beta w celu szybszego przechodzenia przez drzewo decyzyjne poprzez unikanie zbędnych obliczeń (wielokrotne ocenianie identycznej planszy).

2. Checkbox blokujący przelosowanie ziarna generatora liczb pseudolosowych przy resetowaniu gry

3. kolorowanie składni i numerowanie wierszy w oknie heurystyki. Były próby z biblioteką jEdit, jednakże nie dały zadowalających skutków w odpowiednim czasie (aczkolwiek kolorowanie uzyskano), przez co zrezygnowano z tego.

4. Obliczanie czasu wykonania funkcji oceny planszy

5. Limit czasu na ruch/grę dla każdego z graczy. Jego przekroczenie w pierwszym wypadku powinno wymusić wykonanie ruchu, w drugim spowodować przegraną danego gracza. Wg mnie sprawdzanie zegara powinno się odbywać w funkcji cięć alfa-beta

6. Moduł turniejowy, przechowujący implementacje wielu funkcji heurystycznych i rozgrywający kolejne partie systemem każdy z każdym. Najpierw dana heurystyka gra przeciwko wszystkim innym górnymi pionkami, następnie dolnymi. Po zakończeniu pracy moduł powinien zwrócić odpowiednie statystyki zwycięstw poszczególnych graczy. Można by to zrealizować poprzez dodanie do każdej implementacji klasy dostarczającej funkcję heurystyczną linii:

final String userName="name";

i wymuszenie na studentach wpisanie unikalnego ciągu znaków - np nr indeksu, bądź imienia i nazwiska. Statystyki wtedy byłyby łatwiejsze do interpretacji

7. Płynna animacja przesuwania pionków.

8. Podświetlenie wybranego pionka.

9. Dodanie możliwości zapisu i odczytu z pliku źródłowego zawierającego heurystykę, bądź - dla oszczędzenia czasu - już skompilowanego pliku

10. Internacjonalizacja wyskakujących okienek dialogowych

11. Numeracja pól na warcabnicy

12. Przycisk pozwalający na zamienienie graczy na heurystyki przypisane do nich

13. Przyciski w oknie heurystyki pozwalające na wyświetlenie kodu źródłowego heurystyki przypisanej do wybranego gracza

14. Licznik ruchów

15. Licznik ruchów do remisu

16. Dodanie możliwości gry w inne rodzaje warcab

17. Stworzenie wersji aplikacji możliwej do uruchomienia poprzez przeglądarkę internetową

18. Dodanie przełącznika w edycji planszy, wybierającego który z graczy rozpoczyna grę

19. Przemyślenie zmiany reprezentacji planszy w pamięci komputera na trzy maski bitowe (kolejno oznaczające białe pionki, czarne pionki, damki). Przyśpieszyłoby to działanie programu, ale utrudniłoby analizę kodu (szczególnie studentom piszącym heurystyki - byłoby to skomplikowane, bo reprezentacja nie jest intuicyjna)

20. Przetłumaczenie tekstów w języku rosyjskim i hiszpańskim oznaczonych jako "TRANSLATE ME!"

21. Stworzenie osobnej klasy dla okna log, aby obecna funkcja Judge.updateLog(String message) wyglądała naturalniej

22. Dodanie możliwości "Cofnij ruch" i "Ponów ruch"

23. Dodanie możliwości zapisu przebiegu gry do pliku i ponowne późniejsze jej odtworzenie - najlepiej w dowolnym języku.

24. Dodanie możliwości przestawiania pionków poprzez klikanie w wybrane pola, a nie tylko przeciąganie pionków z miejsca na miejsce

25. Wskaźnik kto powinien w danym momencie wykonać ruch - np pionek leżący obok planszy i zmieniający odpowiednio kolor, albo ramka warcabnicy zmieniająca kolor