Skip to content

A Java implementation of Santorini table game as final project of Software Engineering course at PoliMI

Notifications You must be signed in to change notification settings

TiberioG/sw-engineering-polimi-santorini-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Final Project of Software Engineering course at Politecnico di Milano

Table of Contents

Description

This is a distributed Java game based on the table game Santorini.

Features implemented

Functionality State
Basic rules GREEN
Complete rules GREEN
CLI GREEN
GUI GREEN
Socket GREEN
Advanced Function: multiple matches GREEN
Advanced Function: persistence GREEN

Building

Building with Maven

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

Using provided jars

If you want you can use the jars we already built for you, you can find them here

Server

Use our server

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

Run your server

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 ]

Client

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 ] 

Compatibility notes for 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

Documentation

Javadoc

Javadoc is available at this link: http://santorini40.xyz/javadoc
Javadoc is also in this repo here

UML diagrams

UML diagrams are here

Coverage report

The final report of the coverage is here

Gameplay screenshots

Alt Text

asciicast

External libraries used

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

Authors (alphabetical order)

About

A Java implementation of Santorini table game as final project of Software Engineering course at PoliMI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages