Group: IS23-AM40
- 10776567 Francesco Di Giore @Digioref -- [email protected]
- 10743207 Filippo Maria Bertossi @filippobertossi -- [email protected]
- 10730677 Marco Brambillasca @MarcoBrambillasca -- [email protected]
- 10668044 Daniele Di Giorgio @DanieleDiGiorgio -- [email protected]
| Project Module | Status | Current | Notes |
|---|---|---|---|
| UML | 🟢 | 100 % | |
| Basic Rules | 🟢 | 100 % | |
| Complete Rules | 🟢 | 100 % | |
| CLI | 🟢 | 100 % | |
| GUI | 🟢 | 100 % | |
| RMI | 🟢 | 100 % | |
| Socket | 🟢 | 100 % |
| Advanced Features | Status | Current | Notes |
|---|---|---|---|
| Multiple Matches | 🟢 | 100 % | |
| Connections' Resilience | 🟢 | 100 % | |
| Chat | 🟢 | 100 % |
| Test Module | Status | Current | Notes |
|---|---|---|---|
| Test Model | 🟢 | 100 % | |
| Test Controller | 🟢 | 100 % |
This is the repository for the Final Test (Prova Finale) of Software Engineering (Ingegneria del Software) in the academic year 2022/2023 at Polytechnic of Milan.
It is the implementation of a board game called MyShelfie.
Subject: 085923 - Prova Finale (Ingegneria del Software)
Professor: Margara Alessandro
Academic Year: 2022/2023
- Ing. Alessandro Margara (In Charge Professor)
- Ing. Gian Enrico Conti (Practical Instructor)
- Ing. Barbara Schinaia (Lab Instructor)
- Stefano Fossati (Lab Tutor)
- Ettore Zamponi (Lab Tutor)
The game consists of a single jar file by the name AM40.jar. It can be found in /shade directory after building the project with Maven. This file can launch both the Server and the Client (CLI or GUI can be selected in the starting phase).
To run the server, use the command:
java -jar AM40.jar --server
To run the client, use the command:
java -jar AM40.jar --client
from the command line in the jar's folder. You can't use the windows' jar generated file in linux and viceversa. The jar must be regenerated.
Supported in Windows and Linux.
For macOS you have to change the settings of the screen, to do it just follow the instructions in the comments in the method newScene starting at line 378.
After launching a client, you have to choose how to play:
- If you want to play using a Command Line Interface (CLI) press C
- If you want to play using a Graphic User Interface (GUI) press G
- If you have chosen CLI, the next step is chooing the type of connection: press S for Socket or R of RMI
- Then you will be asked to enter the IP of the server (press L for localhost, the default is localhost)
- REMEMBER! In any moment you can write the command "help" to print a list of the available commands and their functionalities
- Write the command "login nickname" (substitute nickname with the name you want to use in game, if your nickname is already used the system will provide you some suggestions of similar nicknames!)
- The first player sets the number of players of the game, use the command setPlayers [int]
- When the number of players has been reached, the game starts! when it's written "your turn" you can use the following commands
Small rules recap: you have to complete your bookshelf picking the tiles on the board.
- select [int, int] (the " , " represents the coordinate of a tile)
- You can choose a maximum of 3 tiles that has to be adjacent and with one side free
- remove command removes the tiles selected
- pick sets the tiles selected as picked (cannot be undone)
- order [] [] [] set the order of the tiles (the first [] represents the first tile selected, the second [] the second and so on); example order 2 1 3
- insert [] to insert the picked tiles in the choosen column
- getboard prints the board
- getbookshelf prints your bookshelf
- getbookall prints all the bookshelves
- getcommgoals prints the common goals
- getpersonalgoals prints the personal goals
- getcurrent returns the name of the current player
- getplayers returns the players' names
- getcurscore returns your current score
- gethiddenscore returns your current score plus the points obtained by your secret personal goal
- chat to enter the chat -> write "to [player] message", if you don't specify the player the message will be broadcasted
- viewchat to see the previous messages in the chat
The CLI tutorial ends here, enjoy playing MyShelfie!!
Follow these steps:
- Select the type of connection
- Enter your nickname in game
- The first player needs to set the number of the players in the game
- Select a maximum of three adjacent tiles with at least one free side each (the tiles that can be selected have dotted borders)
- To clear the selection press the red cross
- To pick the selected tiles press the orange arrow
- Order the tiles clicking on them
- Choose the column you want to insert the tiles with the arrows
- Use the chat (notifications shows you if you have new messages!)
- On the top right you can find the scores
Have fun!
Final Mark: 30L/30
