Table of Contents
- Features implemented
- Building
- Server
- Client
- Documentation
- Gameplay screenshots
- External libraries used
- Authors (alphabetical order)
Functionality | State |
---|---|
Basic rules | |
Complete rules | |
CLI | |
GUI | |
Socket | |
Advanced Function: multiple matches | |
Advanced Function: persistence |
To build the project with Maven we offer the following profiles
- server :
mvn package -Pserver
- client :
mvn package -Pclient
For a faster build you can skip the unit tests activating also the profile -Pnotest
The output directory for the jars is set to /deliveries/final/jar
If you want you can use the jars we already built for you, you can find them here
We created for you a server you can use to play santorini40.xyz Our default port is 1234
You can check the logger to see the server status any time
If you want to run the server on your machine you can use the following command, this is the easiest way to run it
java -jar server.jar
If your're planning to run the server jar on a real server, please edit the service.sh script, editing the following paths and port:
PATH_TO_JAR=/path/to/server.jar
PATH_TO_LOGFILE=/path/to/logfile.log
PID_PATH_NAME=/path/to/pid-file
PORT=xxxx
Don't forget to chmod +x ./service.sh
and then you can start, stop and restart the server using the following command which automatically creates a new thread, and ignores the HUP
./service.sh [ start | stop | restart ]
By default, the client jar loads the GUI, if you wanna use the command line interface please add cli
as argument. Otherwise, you can also double-click the jar file
java -jar client.jar [ cli ]
The command line version of the game is optimized for unix-like terminals.
Our cli version of the game automatically resizes the terminal window for a better game experience. Most terminals allow this by default, in case you have XTerm or iTerm:
- XTerm: set the following resource to true: allowWindowOps
- iTerm2: deselect the following: Preferences > Profiles > [profile] > Terminal > Disable session-initiated window resizing
Otherwise please note that the minimum required size of the terminal to play the game is 160x50
Javadoc is available at this link: http://santorini40.xyz/javadoc
Javadoc is also in this repo here
UML diagrams are here
The final report of the coverage is here
Library | Link |
---|---|
GSON | https://github.com/google/gson |
AnimateFX | https://github.com/Typhon0/AnimateFX |
word-wrap | https://github.com/davidmoten/word-wrap |
Mockito | https://site.mockito.org |