Gra Reversi została napisana przy wykorzystaniu języka JavaScript. Kod nie wymaga żadnych zewnętrznych bibliotek, aby działać. Widoczna plansza i ustawione na niej pionki są wyświetlane przy pomocy grafiki wektorowej SVG, a nad ułożeniem wszystkiego na stronie czuwa CSS. Kod źródłowy aplikacji zajmuje ponad 300 linijek i składa się z blisko 11 tysięcy znaków. W dalszej części artykułu zostanie przedstawione działanie poszczególnych funkcji oraz wytłumaczenie niektórych rozwiązań.
Skrypt, aby zadziałał potrzebuje umieszczenia na stronie obiektu div o identyfikatorze _game. To właśnie wewnątrz tego obiektu program umieści pole komunikatów oraz planszę gry.
Następnie po uruchomieniu strony dodawane są dwa polecenia, które zostaną wywołane po pełnym załadowaniu strony.
(1.) Kiedy strona jest gotowa to (2.) przygotuj znaleziony obiekt div, a następnie (3.) przygotuj planszę do gry.
Podczas inicjalizacji funkcja initialize() przygotowuje obiekt _game. Przede wszystkim tworzone jest pole komunikatów (obj_msg), informacje o aktualnym wyniku gry (obj_score), przycisk powiększania do pełnego ekranu (obj_menu), plansza (obj_board). Następnie wszystkie obiekty są odpowiednio dodawane. Ponadto w tym miejscu w kodzie do obiektu planszy (obj_board) są dodawane definicje, które odpowiadają za część graficzną projektu. Są to filtry, które nadaję dowolnej figurze wygląd pola oraz wygląd pionka zwykłemu kołowi.
Program jest bardzo elastyczny i pozwala na utworzenie dowolnej, kwadratowej planszy. Drobne zmiany pozwoliłyby nawet na utworzenie prostokątnej planszy. Podczas tworzenia planszy wykonywane są następujące operacje:
(2. - 4.) Usunięcie wszystkich obiektów na planszy prócz definicji (obiektu 0). Ta część kodu ma sens jeśli plansza jest tworzona po raz kolejny. (5.) Zapamiętaj w globalnej zmiennej podany rozmiar size. (6. - 26.) Dla każdego pola utwórz (8. - 15.) kwadrat (pole) oraz (16. - 22.) koło (pionek) i (23. - 24.) dodaj je na plansze. Warto zwrócić uwagę na wykorzystanie funkcji createElementNS(), która jest potrzebna, aby element grafiki wektorowej został prawidłowo utworzony. (27.) Zmień wyświetlany zakres płótna planszy i (28.) przejdź do przygotowywania gry.
Proces przygotowania gry nie tworzy od nowa planszy, ale jedynie resetuje jej ustawienia do początkowych.
(2. - 6.) timer - jest wykorzystywany przez funkcję do opóźniania ruchów AI. Przed zresetowanie planszy należy upewnić się, że wywołana funkcja przez timer nie przerwie wywoływania programu przez nieprawidłową operację. (7. - 11.) Zresetuj ustawianie pól do początkowych. Dokładniejszy opis jakie znaczenie mają klasy CSS dla pionków zostaną opisane dalej. (12. - 15.) Przypisz cztery początkowe pola. (16. - 17.) Zresetuj ile pól ma każdy z graczy. (18.) Pobierz listę graczy z ustawień nad ekranem gry i (19.) ustal kto pierwszy się rusza. (20.) Aktualizuj pole wyników, a następnie (21.) sprawdź czy ruch wykonuje AI.
Ustawienia są pobierane z obiektów select. Do każdej opcji dołączony jest kod gracza. Przykładowo gracz jest oznaczany przez kod p. Domyślnie poprawny kod AI zaczyna się od ai, a potem idzie odpowiedni numer, ale właściwie można użyć dowolnego identyfikatora różnego od p. Przykładowo poprawny obiekt select to: