6krecik / rpc-rmi-dice-poker Goto Github PK
View Code? Open in Web Editor NEWThis project forked from nickers/rpc-rmi-dice-poker
another laboratory project, game similiar to Yahtzee with use of java rmi
This project forked from nickers/rpc-rmi-dice-poker
another laboratory project, game similiar to Yahtzee with use of java rmi
Tomasz Wsuł Indeks 80169 [email protected] ------------------------------------------------------------------------------- -- Zadanie z RMI na laboratorium z Narzędzi Przetwarzania Rozproszonego (NPR). ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -- 1. Kompilacja ------------------------------------------------------------------------------- Przygotowany jest plik Makefile, więc wystarczy wydać polecenie "make". ------------------------------------------------------------------------------- -- 2. Uruchomienie ------------------------------------------------------------------------------- Zostały przygotowane 3 pliki 'run-registry.sh', 'run-server.sh' oraz 'run-client.sh'. Wystarczy je uruchomić. Pierwszy musi być uruchomiony rejestr, potem serwer i klienci. ~:$ ./run-registry.sh & ~:$ ./run-server.sh & ~:$ ./run-client.sh & ~:$ ./run-client.sh & Uruchomi to serwer z dwoma klientami. Po rozpoczęciu gry mamy 3 rzuty w trakcie których możemy wybierać które kości mają być ponownie rzucone. W tym celu klikamy na odpowiednią kość (JPushButton w górnej części ekranu gry). Kości są porównywane gdy obaj gracze zaakceptują wylosowany układ kości przyciskiem "OK". Nawet po wyczerpaniu puli oczekuje się akceptacji użytkownika, gdyż automatyczna akceptacja wprowadzała chaos w rozgrywkę. Dodatkowo pierwszy rzut wykonywany jest automatycznie wszystkimi kościami. ------------------------------------------------------------------------------- -- 3. Reguły gry ------------------------------------------------------------------------------- Wygrywa gracz, który ma wyższy układ kości a w przypadku gdy obaj mają takie same ilość ilość oczek (liczona różnie dla każdego układu). Jeśli w ten sposób nie można ustalić zwycięzcy mamy remis. Zwycięzca dostaje 1 punkt, w razie remisu nikt nie dostaje punktu. Układy zostały skopiowane z minigry w kości z gry „Wiedźmin”. „Wyróżniamy następujące kombinacje kości: Para - Dwie kości o tej samej liczbie oczek; Dwie pary - Dwie pary kości o tej samej liczbie oczek; Trójka - Trzy kości o tej samej liczbie oczek; Mały strit - wszystkie liczby od 1 do 5; Duży strit - wszystkie liczby od 2 do 6; Full - Para + trójka; Kareta - Cztery kości o tej samej liczbie oczek; Poker - Wszystkie kości z tą samą liczbą oczek.” // Skopiowano z [http://crpg.iml.pl/wiedzmin/minigry/1884a] ------------------------------------------------------------------------------- -- 4. Opis implementacji ------------------------------------------------------------------------------- Krótkie opisy klas: poker.game.GameState - klasa do przenoszenia informacji o stanie rozgrywki do klientów. poker.game.Server - serwer rozgrywki poker.game.Game - zdalna klasa rozgrywki - to tutaj są wykonywane wszelkie zmiany poker.game.GameParticipant - uczestnij rozgrywki (zdalna klasa) poker.game.resultTesters.* - klasy do testowania układów kości (para,strit...) poker.gui.PokerUI - interfejs użytkownika utworzony automatycznie i uzupełniony o obsługę rozgrywki (wątek nasłuchujący informacji zwrotnych). Otrzymywanie informacji o zmianach: Wątek utworzony w PokerUI wywołuje funkcję GameParticipant::waitForGameStateChange() gdzie następuje zawieszenie wątku za pomocą Object::wait() w oczekiwaniu na zmianę stanu gry. Przy każdej zmiane stanu jest wywoływane Object::signalAll().
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.