Skip to content

ryselgh/CoF_cg42_2016

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Council of Four

This repository contains our implementation of the board game "Council of Four" distributed by CranioCreation. This file will help you to understand how we built it.

We'll explain how to run it properly and some particular features.


enter image description here


Usage Info

Start Server

In order to play, you first need to start the server, to do that run /server/src/main/java/com/server/controller/MainServer.java and choose what connection the server has to receive :

  • Socket
  • RMI

###Start Client

Once the server runs you're be able to play a game. So start the client running /client/src/main/java/com/client/controller/MainClient.java

First of all you have to choose an interface beetween

  • GUI (only socket)
  • CLI

Then choose the connection type adapting to the server one

Follow the instructions on screen and join the game!

ScreenShots

For mac users: it's recommended to run the guy in windowed mode (ESC)

enter image description here

The main window

enter image description here

enter image description hereenter image description here

Features

We've decided to use three modules in our project:

  • Server
  • Client
  • Communication

All the logic is in server. It has been stratified. We have three levels:

  • Lobby, that creates the game (or more) and manages it (them).
  • GameHandler, that manages a single game.
  • ClientHandler, dedicated to I/O with Client.

Client has no game logic. Communication package is the core of our Communication protocol involved in Server/Client interaction. Hiding game logic to client we ensure a protection layer to the game, making it harder to find exploitable flaws. It also makes it possible to have a lightweight client.

enter image description here

We've made large use of MVC pattern in threads communication.

Map

Maps are defined using XML language. You can choose between 8 maps ( the same of the board game) or import a custom one using its filepath. The admin is the only one who can change the map in a room. When the game starts the parser imports the selected map.

Lobby

Lobby is the advanced function we implemented in our project. It can manage more than a game as you can see in the image. Every Room is a game in which the Admin can set the game rules. The admin is the one who creates the room; if he leaves, another player will take his place.

enter image description here

Credits

Group members (cg42):

  • Niccolò Pozzolini
  • Saverio Ruggieri
  • Francesco Vona

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published