Coder Social home page Coder Social logo

alessandrobianco-cpu / ingswam2021-arbasino-azzara-bianco Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cicabuca/ingswam2021-arbasino-azzara-bianco

0.0 0.0 0.0 318.85 MB

Final exam project of Software Engineering 1 at Politecnico di Milano [A.Y 2020/2021]

License: MIT License

Java 100.00%

ingswam2021-arbasino-azzara-bianco's Introduction

Software Engineering 1 : final project - AY 2020-2021

alt text

The purpose of the project is to implement the board game Masters Of Renaissance following the architectural pattern Model-View-Controller (MVC) for the realization of the model according to the object-oriented programming paradigm. The final result completely covers the rules defined by the game and allows you to interact with both a command line interface (CLI) and a graphical interface (GUI). The network has been managed with the traditional socket approach.

Teacher Alessandro Margara

Documentation

The following documentation includes the documents created for the design of the game, the class diagrams in UML will be listed first then the code documentation (JavaDoc).

UML

The following class diagrams represent the model according to which the game should have been implemented and the diagrams of the final product.

JavaDoc

The following documentation includes a description for most of the classes and methods used, follows the Java documentation techniques and can be consulted at the following address: JavaDoc

Test Coverage

All model methods have been tested (except the getters)

alt text

Libraries and Plugins

Library/Plugin Description
maven management tool for software based on Java and build automation
junit Java framework for unit testing
JavaFX Java graphics library
maven-assembly Maven plugin used to create executable jar

Jar

The following jar allows to launch the game as described in the following sections. The features built according to the design specification are listed in the next section while the details about how to launch the system will be defined in the section called Execution of jar.

Implemented Functionalities

Functionality Status
Basic rules GREEN
Complete rules GREEN
Sockets GREEN
GUI GREEN
CLI GREEN
Multiple games GREEN
Disconnection Resilience GREEN
Local Game GREEN
Persistence RED
Parameter editor RED
Legend

RED Not Implemented     YELLOW Implementing    GREEN Implemented

Advanced Functionalities

  • Multiple Games : server handles multiple instances of game, all players must have different nicknames.
  • Disconnection Resilience : during a game, if a player disconnects, the game will go on without the disconnected player. Eventually they can re-join the match using the same nickname (if the game is still on). If a player disconnects during the setting-up phase (choosing of leader cards and initial resources), the game is taken down and the players are invited to reconnect in another match. After a player disconnection during the game, if there is only one active player left, the game is taken down and the active player wins the game.
  • Local Game : if you want, you can play a single-player game locally (without using socket-connection).

Extra Functionalities

  • Cheat : in order to show in a shorter amount of time the evolution of the game, we implemented a cheat that allows the user to increase the number of each type of resource in the strongbox by ten at a time.
    In CLI the command is $$, in GUI there's a golden coin button that activates it.

Minimum requirements

  • Screen Resolution : 1200 x 720 pixels.
  • Terminal : - on Unix-based systems "Terminal";
                     - on Windows systems "WLS" or "Windows Terminal Preview".

Execution of JAR

Application choice

The JAR is unique for server/client side. The server is run by optionally choosing the number of port. The client is run by choosing the interface to play with: the possible choices are command line (CLI) or graphical interface (GUI). The following sections describe how to run the client (in one way or another) or the server.

CLI

To launch the client in CLI mode, type the following command:

java -jar MastersOfRenaissance.jar -cli
GUI

To launch the client in GUI mode, type the following command:

java -jar MastersOfRenaissance.jar

Server

To launch the server, type the following command:

java -jar MastersOfRenaissance.jar -server -port [port_number]
Parameters
  • -cli/-server: allows you to choose which application you want to launch. If not specified the gui will be launched.
  • -port 12345: allows you to enter the number of server port (only for server launching). If not specified the default value is 12345;

The Team [JavaComeLava]

Special Thanks

A big thank you to Perico Marco for the artworks that compose the GUI.

Copyright and license

Masters Of Renaissance is copyrighted by Cranio Creations in 2020. Licensed under the MIT License : you may not use this software except in compliance with the License.

ingswam2021-arbasino-azzara-bianco's People

Contributors

pitonebianco avatar cicabuca avatar andreaarbasino 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.