Connect Four
To jest aplikacja internetowa do gry w dobrze znaną gręConnect Four. Dwóch graczy (A jest czerwony, B jest żółty) na zmianę wypełnia planszę monetami, starając się połączyć cztery własne monety, poziomo, pionowo lub po przekątnej.
Projekt ten został stworzony przez Christiana Kollmanna jako projekt w ramach kursu „Software TechnologyProject”, pod opieką Oswina Aichholzera, na Politechnice w Grazu.
Serwer został napisany w Javie 7, przy użyciu frameworka Spring. Klient jest napisany wHTML i JavaScript, przy użyciu jQuery. Kompatybilność została przetestowana w Chromium i MozillaFirefox na systemach Linux i Android. Niemniej jednak aplikacja powinna być kompatybilna z każdą przeglądarką, np. Microsoft Internet Explorer.
Features
- Każdy z graczy (A i B) może być kontrolowany przez człowieka lub komputer (AI)
- Wybierz poziom AI: „Perfect” zawsze wykona optymalny ruch (który może nie być unikalny), „Just win” losowo wybierze zwycięski ruch (jeśli jest dostępny i nie musi być optymalny), „Random” losowo wybierze kolumnę
- Informacje o ruchu: Opcjonalnie wyświetla liczbę półruchów do końca gry dla możliwych ruchów
- Recommend move: Pokazuje idealny ruch(y) dla bieżącego gracza (może być więcej niż jeden ruch)
- Undo/Redo: Odwraca ostatni ruch(y) wykonany przez któregokolwiek z graczy
- Zapisz/Wczytaj: Zapisuje grę (w pamięci lokalnej, dostarczanej przez HTML5), aby wznowić grę później
Podstawy
AI tej gry jest oparte na wyczerpującej ocenie wszystkich możliwych pozycji gry do 23 monet, przechowywanych w dużej bazie danych. Plansze z 24 lub więcej monetami są oceniane bezpośrednio na serwerze. Dla każdej możliwej planszy znany jest jej status (wygrana aktualnego gracza, wygrana przeciwnika, remis), jak również minimalna liczba półruchów potrzebnych do wymuszenia wygranej z tej planszy. Parzysta liczba pokazuje, w ilu kolejnych półruchach można wygrać grę, kładąc monetę w tej kolumnie (zakładając optymalną grę przeciwnika, w przeciwnym razie można wygrać szybciej). Liczba nieparzysta pokazuje maksymalną liczbę półruchów, o które można opóźnić zwycięstwo przeciwnika (ponownie zakładając optymalną grę obronną przeciwnika). D” oznacza pozycję, w której aktualny gracz może wymusić remis. Parzysta liczba wskazuje więc ruch wygrywający, który gwarantuje wygraną aktualnego gracza (jeśli nadal gra optymalnie) w co najmniej tej liczbie półruchów. Optymalny wygrywający ruch to taki, który gwarantuje najkrótszą dostępną sekwencję półruchów do momentu wygranej gracza. W sumie, bazując na wyczerpującej bazie danych, nie tylko potwierdza, że Connect Four jest wygraną pierwszego gracza. Pokazuje ona dla każdej możliwej sytuacji na planszy pełną informację dla wszystkich możliwych ruchów, dostarczając w ten sposób doskonałych informacji do analizy całej gry.