Skip to content

marco-weger/ing-sw-2020-weger-paterna-saulle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Santorini logo

Final project of Software Engineering - 2020

This project was made between March and July 2020 as our final thesis project at Politecnico di Milano.
Rated with 30 cum laude on 12 July 2020.

Marco Weger (@marco-weger)
Francesco Paterna (@FrancescoPaterna)
Giulio Saulle (@aGiulioSaulle)

Quick Index

Requirements

You need JavaSE 14 or higher version to run this game.
https://www.oracle.com/java/technologies/javase-downloads.html

If you use Windows and want to run the game in CLI mode, we suggest you to use the Bash on WSL to a better expirience https://docs.microsoft.com/en-us/windows/wsl/install-win10

Get JARs

You can find them here or you can generate them yourself with Maven

JARs with Maven (OPTIONAL)
Client
mvn clean compile assembly:single -PClient
Server
mvn clean compile assembly:single -PServer

Configuration (Optional)

An optional JSON file could be saved in ./resources/config.json; if the software can't find the file it will use default value,
written in square brackets.
Allowed params:

  • ip (used by client) [127.0.0.1] - addres of server
  • port (used by cliend and server) [1234] - socket port
  • pingPeriod (used by cliend and server) [2] - used to keep safeily alive the connection
  • timeoutSocket (used by cliend and server) [5] - used to keep safeily alive the connection
  • disconnectTimer (used by server) [60] - timer used to handle a diconnection during a match
  • turnTimer (used by server) [180] - timer for a single turn

Start Game

Enjoy Santorini in GUI mode or try the 90s Experience with CLI mode.
Download and run client.jar and put in the same folder the directory resources with the json file.
You will play in our Official Server (Check here if our Server is available)

You can also play Santorini with your own Server, just run Server.jar on your pc, and set your ip on json file.
(if you prefer, you can avoid to use json file, just don't put the directory resources in client.jar's folder,
the game will ask you the ip and the port that you want to use).
exemple

Start Client

java -jar Client.jar

or

java -jar Client.jar [CLI/GUI]

If you decide to run it withouth the arg, you will play in GUI mode.

Start Server

java -jar Server.jar

Specification Covered

Functionality State Description
Basic rules GREEN 2 players mode with 5 cards implemented
Complete rules GREEN 2 players and 3 players mode with 9 cards implemented
Socket GREEN Network Socket Implemented
CLI GREEN Command Line Interface
GUI GREEN Graphical User Interface
Multiple games GREEN The game allows players to join in a new lobby at the end of a match
Persistence GREEN Game status saved on disk. The game can resume after a server or client crash

Testing

IntelliJ Coverage - Full Report [169 Tests]
IJ TEST

Santorini Official Server

Powered by Microsoft Azure

Server State State Round Timer
52.136.XXX.XXX 🇮🇹 RED   Offline 03:00
40.84.XXX.XXX 🇺🇸 RED   Offline 03:00

Santorini logo

About

"SOFTWARE ENGINEERING 1" project (PoliMi)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published