nikolaspaterson / SYSC3110DesignProject

The goal of this team project is to reproduce a simplified version of the classic strategy game RISK.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SYSC3110DesignProject

How to Install

User must have java JDK installed to run the program. Game has been optimized to run on Windows and some features maynot function on Mac & Linux

  1. Download ZIP file
  2. Extract ZIP
  3. Launch SYSC3110DesignProject.jar

The goal of this team project is to reproduce a simplified version of the classic strategy game RISK.

Group 3

Authors

@aelsammak

@Erik-Iuhas

@nikolaspaterson

TA(Carleton's Best)

@MikeVezina

Project Milestones

  • Milestone 1: Create a text-based playable game.
  • Milestone 2: Make game GUI based.
  • Milestone 3: Implement AI players and many more features!
  • Milestone 4: Save/load game and custom maps

Milestone 1 Deliverables

  1. Readme ✅
  2. Source code + jar executable ✅
  3. UML Diagram ✅
  4. Documentation ✅

The readme file is used to describe our project and the roadmap ahead. The source code consists of classes that work work together to make our text based game playable. The UML diagram displays how our classes interact with one another. We documented all of our code and provided a Word Document describing our choice in data structures.

Milestone 2 Deliverables

  1. Readme ✅
  2. Design file ✅
  3. Unit tests ✅
  4. Source code ✅
  5. Documentation ✅

Milestone 3 Deliverables

  1. Readme ✅
  2. Source code ✅
  3. Unit tests ✅
  4. Refined design ✅
  5. Removed 'smelly code' ✅

Milestone 4 Deliverables

  1. Readme ✅
  2. Source code ✅
  3. Unit tests ✅
  4. Documentation ✅

Changes Made

Milestone 1

There were many changes made to this iteration of the progejct. Our UML was revised several times, classes were created, deleted and refactored and many bugs were squashed. Our group also changed, we unfortuantely had a member drop the course resulting in the remaining members to absorb a little extra work. We were able to fix many bugs and after long hours in voice calls we created a playable textbased version of RISK.

Milestone 2

In Milestone 2, we had to update the entire game to be GUI based so we went out to achieve the best looking game of RISK ever made, with 3 playable character in the roster and more to come. This version of the game has an easy to use interface which allows for players to clearly identify their owned territories and enemies with ease. Along with background music and a winning track, the game is bound to get Game of the Year.

Milestone 3

Are you smarter than our AI? Thats right, in the third milestone we added an ai player that you can compete against. We also added implemented unit testing, this means we were able to fix any bugs that I player may abuse to get an unfair advantage.

Milestone 4

We have allowed users to save their game so they can resume playing at a later time. We also implemented custom maps, users can create maps as a JSON file which can be loaded into our game and played. An example JSON map can be seen in our source code.

Known Issues

There still arent any known issues in our code.

Deliverables

Old Scripts

Script Author(s)
Command Nikolas Paterson
CommandEnum Nikolas Paterson
CommandParser Nikolas Paterson
CommandWord Nikolas Paterson
Game Erik Iuhas, Nikolas Paterson

Models

Model Author(s)
Dice Ahmad El-Sammak
GameEvent Ahmad El-Sammak
Player Ahmad El-Sammak, Erik Iuhas
Game Model Erik Iuhas, Nikolas Paterson, Ahmad El-Sammak
Territory Ahmad El-Sammak, Erik Iuhas
Continent Erik Iuhas, Nikolas Paterson, Ahmad El-Sammak
AIPlayer Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
AttackResult Ahmad El-Sammak
AITimer Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
FlasTimerTask Erik Iuhas
GameState Ahmad El-Sammak

Views

View Author(s)
GameView Erik Iuhas
GameSetup Erik Iuhas
StatusBar Erik Iuhas
AttackPopUp Ahmad El-Sammak
PlayerView Erik Iuhas
BackgroundPanel Erik Iuhas
TerritoryButton Ahmad El-Sammak, Erik Iuhas
FortifyPopUp Nikolas Paterson
StartUpView Nikolas Paterson
PlayerSelectView Ahmad El-Sammak
PlayerSelectPanel Ahmad El-Sammak
ReinforcePopUp Nikolas Paterson
WinningScreenFrame Ahmad El-Sammak
FilePath Ahmad El-Sammak
GameMenuBar Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson

Controllers

Controller Author(s)
AttackPopUpController Ahmad El-Sammak
FortifyPopUpController Nikolas Paterson
GameController Erik Iuhas
PlayerSelectController Ahmad El-Sammak
ReinforcePopUpController Nikolas Paterson
StartUpController Nikolas Paterson
TerritoryButtonController Ahmad El-Sammak, Erik Iuhas
JButtonActionCommands Ahmad El-Sammak
MapSelectController Ahmad El-Sammak
SaveController Erik Iuhas

Unit Tests

Test Author(s)
GameEventTest Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
GameModelTest Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
MockDice Ahmad El-Sammak
MockGameEvent Ahmad El-Sammak
SaveTest Nikolas Paterson
MockSave Erik Iuhas, Nikolas Paterson

Resources

Resource Author(s)
TerritoryNeighbours.csv Erik Iuhas
Map.png Erik Iuhas
Chizzy.png Erik Iuhas
TA.png Erik Iuhas
Captain.png Erik Iuhas

Event

Event Author(s)
PlayerEvent Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
UserStatusEvent Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
TerritoryEvent Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
SaveEvent Erik Iuhas, Nikolas Paterson

Listener

Interface Author(s)
PlayerListener Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
TerritoryView Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
UserStatusListener Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
SaveEvent Erik Iuhas, Nikolas Paterson

JSONModels

JSON Model Author(s)
JSONAIPlayer Erik Iuhas
JSONContinent Erik Iuhas, Ahmad El-Sammak
JSONContinentKeys Erik Iuhas, Ahmad El-Sammak
JSONGameModel Erik Iuhas
JSONGameModelKeys Erik Iuhas, Ahmad El-Sammak
JSONMap Erik Iuhas
JSONMapKeys Erik Iuhas, Ahmad El-Sammak
JSONMapTerritory Erik Iuhas , Ahmad El-Sammak
JSONPlayer Erik Iuhas
JSONPlayerKeys Erik Iuhas, Ahmad El-Sammak
JSONTerritory Erik Iuhas

Documentation

Document Author(s)
README Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
UML Diagram Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
Sequence Diagrams Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson
Write Up Ahmad El-Sammak, Erik Iuhas, Nikolas Paterson

Project Roadmap

The project is complete and archived so if you would like to modify the code you must fork the project. This project was a great learning experience and it was a true pleasure to work with such a strong and devoted team. Many skills were learned and applied while designing this game, including but not limited to team work & communication, refining & refactoring code base, testing and documenting code. Many of these skills will be very useful when applied to a real world project.

Copyright matters

If you are interested in our game please check out its original inspiration, Risk: Global Domination. We are created this game for educational purposes which falls under fair use. If you have concerns about copyrighted material please contact one of the project creators.

About

The goal of this team project is to reproduce a simplified version of the classic strategy game RISK.


Languages

Language:Java 100.0%