- Luigi Scibona as Scilux/Sciluxor
- Alessandro Ruzzi as alexruzzi98
- Edoardo Piantoni as edoardopiantoni
The aim of the project is to implement the Santorini board game following the architectural model Model View Controller for the realization of the model according to the object-oriented programming paradigm, in this case with Java language. The final result completely covers the rules defined by the game and allows you to interact with both a command line interface (CLI) and a graphical interface (GUI), the network has been managed with the traditional socket approach.
- Complete Rules
- CLI
- GUI
- Socket
- Advanced features:
- Multiple games
- Advanced gods
Possibility to carry out multiple games simultaneously
We have implemented 5 advanced gods, in particular:
- Tutorial
- Chat
- Music and sounds
The following documentation includes the documents created for the design of the problem, the class diagrams in UML will be listed first, then the code documentation (javadoc) and finally the test coverage.
The following class diagrams represent the first, the initial model according to which the game should have been implemented, the second instead contains the diagrams of the final product.
The following documentation includes a description of the classes and methods used and can be consulted at the following address: Javadoc
As for the coverage of the tests as reported by IntelliJ are:
- model 100% classes, 96% method, 96% line
- controller 100% classes, 95% method, 92% line
The following jars have been used for the delivery of the project, they allow the launch of the game according to the functionalities described in the introduction. Details for how to launch the system will be defined in the section called Executing jars. The folder where there are the client and server software is at the following address: Jars.
To generate tha Jars we used the Maven plugin with maven install
.
They are created in the target folder with the names Client_CLI-jar-with-dependencies.jar, Client_GUI-jar-with-dependencies.jar and Server-jar-with-dependencies.jar and must be moved to the Jars folder.
The client runs by launching the desired jar to play from the command line or graphical interface. The following sections describe how to run the client in one way or another.
For a better command-line gaming experience it is necessary to launch the client with a terminal that supports UTF-8 encoding and ANSI escapes. To launch the CLI client type the following command:
java -jar Client_CLI-jar-with-dependencies.jar
To launch the GUI client type the following command:
java -jar Client_GUI-jar-with-dependencies.jar
By default, the server will be accessible through port 4700. To launch the server enter the following command:
java -jar Server-jar-with-dependencies.jar
That's the login, here you can choose your nickname (between 4 and 13 characters), the number of player, the port and the address to access the server.
That's the lobby, here you wait the other players.
As Challenger, you will have to choose the gods, and the first player that start the game. During the gods choice you can pass your mouse over a card to read the power, and you can change your previous choices by clicking on the card you want to change.
After choosing your power you will have to place your workers on the map. You can change the position of the ones placed before by clicking again on it.
On your turn, first of all you have to choose one of your worker. By clicking on the button, the workers you can choose will be displayed with a blue border. You can change your choice by clicking again on the choose button until you make an action (Move or Build).
After you choose a worker, clicking on the action buttons you will see where you can make those actions by a white border on every square. You can switch between the actions until, you click on the map for the move, or you click on the building button on the console for the build.
During the opponents turns you will receive updates of their actions. In particular their actions will be marked on the map with a orange border.