Giter Club home page Giter Club logo

ing-sw-2020-sguanci-spatafora-vergani's Introduction

Santorini - Sguanci Spatafora Vergani INGSW 19-20

Santorini

In order to build and run these executables, you need to install JDK 1.8 (available here)

Build

Maven command to build the Server JAR:

mvn package -P server

Maven command to build the Client (CLI) JAR:

mvn package -P client-cli

Maven command to build the Client (GUI) JAR:

mvn package -P client-gui

Run

JAR Executable files are placed in /deliveries/executables folder.

To run the Server Executable, run this command from terminal / cmd:

java -jar server.jar

To run the CLI Client Executable, run this command from terminal / cmd:

java -jar cli.jar

If you're on Windows, you should first run this command to allow the game to use ANSI codes to show its beautiful (and colorful) CLI interface:

REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1

To run the GUI Client Executable, you have 2 options: the classic command from terminal / cmd:

java -jar gui.jar

Or, if you are on Windows or macOS, you can simply double click the JAR file.

Dependencies

Dependency Usage
maven Package manager used for building and managing the project, with a particular focus on lifecycle handling (running tests, building executables).
junit Tool used to unit test Java classes. In particular, it was used in this project to test Model and Controller components (MVC).
gson Used to serialize the game Board as a JSON String in order to avoid the necessity to send complex object through the Socket's stream.
mockito Used as a support to JUnit tests and to improve the code coverage of the tests themselves. It adds the capability to test that a specific method with certain parameter has been called under certain conditions.

Tests Coverage Details

Coverage

Tests coverage report is available here

To run the tests, run this command:

mvn test

Note that, to test Server-side concurrency, an intensive stress test has been launched. However, it is marked as @Disabled in production (it won't run with mvn test) to make the test phase faster (that test lasts ~20 seconds).

JavaDoc

JavaDoc can be found here

Features developed

  • Complete rule set of the game;
  • CLI;
  • GUI;
  • Socket communication between server and client.

Additional features

  • Multiple matches at the same time;
  • 5 Advanced Gods implemented.

ing-sw-2020-sguanci-spatafora-vergani's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.