Skip to content

Software Engineering Final Project - Polimi - a.y. 2019-2020: Santorini Online

Notifications You must be signed in to change notification settings

LorenzoMainetti/ing-sw-2020-Mainetti-Iorio-Lacava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software Engineering Final Project - a.y. 2019-2020

alt text

The goal of the project is to implement the board game Santorini in the Java language, following the architectural pattern Model-View-Controller and following the object-oriented programming paradigm. The final result completely covers the rules defined by the game and allows to interact with it both from the command line (CLI) and the graphic interface (GUI). The network has been managed by the socket approach.

Documentation

Coverage Report

HTML documentation that reports in detail the overall test coverage achieved by the single packages and classes. The Model has been strongly tested, and it reaches a 99% statement coverage. It is available at the following address: Report

UML

The following classes' diagrams represent respectively the initial model's project, updated to reflect the current state, and the final diagrams of the entire project, generated by the IntelliJ's tool.

JavaDoc

The following documentation includes a description of the used classes and methods, it follows the Java documentation techniques and it is available at the following address: Javadoc

Jar

The following jar files permit the game launch according to the functionalities required by the project assignment. The functionalities are listed on the Functionalities section, and the details on how to launch the jar files are defined on the Jar Execution section. The files .jar of Client and Server are available at the following address: Jar

Libraries and Plugins

Library/Plugin Description
maven tool to manage softwares based on Java and build automation
maven-shade-plugin plugin to create an uber-jar
junit framework dedicated to Java for unit testing
JavaFx Java's graphic library

Functionalities

Functionalities Developed

  • Complete Rules
  • CLI
  • GUI
  • Socket

Advanced Functionalities Developed

  • Multiple Games
  • Advanced Gods

JAR Execution

Server

To execute the server digit the following command on the terminal:

java -jar serverApp.jar 

The used predefined port is 9090.

Client

The client is executed choosing the interface to play with, the possible choices are the command line or graphic interface. The following sections describe how to execute the client in both ways.

CLI

For a better command line game experience it is necessary to launch the client by a terminal that supports UTF-8 encoding and ANSI escapes. To launch the client on CLI's modality digit the following command:

java -jar clientApp.jar -cli

GUI

The necessary dependencies to run javaFX for the main operating systems (Windows, macOs, Linux) have already been added to the pom, so the client is cross-platform. To launch the client with the graphic interface double click on the jar, or digit on the terminal:

java -jar clientApp.jar 

Group Members

About

Software Engineering Final Project - Polimi - a.y. 2019-2020: Santorini Online

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages