a simple game written in C with GTK+
- Okno główne aplikacji.
- Funkcjonalności aplikacji:
- Po kliknięciu przycisku "Nowa gra" przeciwnik dostaje zapytanie czy chce rozpocząć nową grę. Może zaakceptować albo odrzucić propozycję. W tym czasie gracz który wnioskował o nową grę czeka na odpowiedź przeciwnika. W przypadku odpowiedzi pozytywnej gra rozpoczyna się.
- Po kliknięciu przycisku "Cofnij" przeciwnik dostaje zapytanie czy pozwala swojemu przeciwnikowi na cofnięcie jednego ruchu. W tym czasie gracz który wnioskował o cofnięcie ruchu czeka na odpowiedź przeciwnika. W przypadku odpowiedzi pozytywnej ruch jest cofany. Można wnioskować tylko o cofnięcie jednego swojego ruchu.
- Gracz nie może nacisnąć żądnego pola dla którego jego ruch byłby niepoprawny.
- Pola oznaczone małym szarym kółkiem to pola na które gracz może nacisnąć i wykonać poprawny ruch.
- Jeśli poprawny ruch na gracza nie istnieje to automatycznie przeciwnik ma 2 ruch.
- Jeśli gracz wyjdzie z gry to jego przeciwnik otrzymują taką informację i może wyjść z gry.
- Wszystkie niedozwolone akcje są poblokowane.
- Gracze podczas rozgrywki mogą ze sobą konwersować.
- Po zakończonej rozgrywce obu graczom wyświetla się informacja który z nich wygrał. Mają możliwość albo od razu wnioskować o następną nową grę albo zrezygnować z tej przyjemności i wejść do okna z zakończoną grą i znowu ewentualnie zacząć nową grę lub wyjść.
- Moduły aplikacji:
- Moduł główny - tworzy GUI i podpina zdarzenia do sygnałów.
- Moduł gry - zarządza całym przebiegiem gry i wszystkimi akcjami z nią związanymi, oraz czatem.
- Moduł komunikacyjny - odpowiada za komunikację międzyprocesową.
- Uruchamianie / kompilacja:
4.1 Linux
Do kompilacji wymagana biblioteka GTK+-3.0
Jej instalacja:
sudo apt-get install libgtk-3-dev
Program kompilujemy następnie polecieniem:
gcc main.c reversi.c pipes-lin.c -std=c99 -o reversi `pkg-config --cflags --libs gtk+-3.0`
Uruchamiamy w 2 osobnych terminalach poleceniem:
./reversi B
lub./reversi C
do skutku.
Jeśli nie zadziała B to uruchamiamy z C, a drugi z innym parametrem.
4.2 Windows
Na Windowsie postępujemy analogicznie, lecz kompilujemy z plikiem pipes-win.c