Software Engineering Project - Politecnico di Milano - Academic Year 2021/2022
Eryantis board game implementation.
The game features a distributed system using the MVC (Model-View-Controller) pattern. Network communications are managed with the use of sockets.
Interaction and gameplay: command line (CLI) and graphics (GUI).
Final grade:
-
Paci Emanuele (@emanuelePaci)
-
Paleari Lorenzo (@LorenzoPaleari)
-
Puppinato Thomas (@PuppinatoThomas)
The following documentation includes a description of the classes and methods used, which can be found here.
At the following link you can consult the coverage report of the tests carried out with Junit.
Coverage criteria: code lines
Package | Coverage |
---|---|
Controller | 432/451 (95%) |
Model | 637/643 (99%) |
Library/Plugin | Description |
---|---|
Maven | Build automation tool used primarily for Java projects |
JavaFx | Graphic library to develop user interfaces |
JUnit | Unit testing framework |
JAnsi | Graphic library for Windows compatibility with AnsiCode |
- Complete rules
- CLI
- GUI
- Socket
- 2 AF (Advanced Function):
- Character cards: implemented all 12 character cards.
- Multiple games: server designed so that it can manage multiple games at the same time.
In order to run correctly you should have JDK 17 or above. Here you can find the download page.
The user has two jars available, one for the server and one for the client.
You can find them here.
The server jar can be executed either in Windows and Unix platforms with the following command:
java -jar Server.jar
The server asks the port to bind to.
You are free to choose the version corresponding to your opearting system. It is recommended to pay more attention to MacOsX: due to some path conflict JavaFx is not able to generate a Jar working either for Intel Mac and Apple Silicon Mac; for the first one you have to launch x64, while aarch64 for the other.
CLI has full compatibility with Windows and Unix platforms. You can launch it with the following command:
java -jar Client.jar -c
or
java -jar Client.jar -cli
On all OS we suggest to open the terminal at full screen before launching the application.
For best performance we suggest to use mono spaced font (12 size) and to have UTF-8 character set.
To know how to check/set-up UTF-8 look to the following instructions.
On Windows you should use CMD.
You can double click on the jar file if your OS supports it or you can launch it with the terminal using the following command:
java -jar Client.jar
In Windows if the GUI window exits the screen boarder we suggest to check Windows Scaling and to lower it:
Settings > Display > Scale and Layout (For Example from 150% to 125%).
During set-up phase you will be asked if you want to create a new game or not.
By selecting "NO" the server will send all the available lobbies with NumPlayer, ExpertMode and the Partecipants: you have the possibility to choose in which lobby you would like to enter by scrolling throw them (GUI) or by changing page with "Next/Prev" (CLI).
You will find on screen the command summary.
When selecting a command to use you will be guided towards its completition by the game itself.
The assistants cards are found in the bottom-left part of the screen, if you go over them with the mouse they will become bigger and more visible.
Students and MotherNature can be moved by dragging and dropping them. If you go over a valid place (Island / Board) the boarder change color to make you aware that it is a valid place in which you can release your mouse.
Clouds are choosed by clicking on them.
Character Card description and instruction will be displayed in a new window after clicking on them.
In order to use a Character you should click on the Play button.
Some of the Characters are playable instantly, other ones requires the player to perform some actions either on the main game (Draggin students/do not entry tiles or clicking on a island) or selecting options int the Character window.