Giter VIP home page Giter VIP logo

reversi's Introduction

Reversi

a simple game written in C with GTK+

  1. Okno główne aplikacji.

alt tag

  1. 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ść.
  1. 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ą.
  1. 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

reversi's People

Contributors

mzr avatar

Stargazers

Ruan Yi avatar

Watchers

James Cloos avatar  avatar

Forkers

iynaur

reversi's Issues

Future work

Might want to refactor it more.
Then it would be nice to make processes communicate trough the LAN.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.