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
- Download ZIP file
- Extract ZIP
- Launch SYSC3110DesignProject.jar
The goal of this team project is to reproduce a simplified version of the classic strategy game RISK.
Authors
TA(Carleton's Best)
- 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
- Readme ✅
- Source code + jar executable ✅
- UML Diagram ✅
- 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.
- Readme ✅
- Design file ✅
- Unit tests ✅
- Source code ✅
- Documentation ✅
- Readme ✅
- Source code ✅
- Unit tests ✅
- Refined design ✅
- Removed 'smelly code' ✅
- Readme ✅
- Source code ✅
- Unit tests ✅
- Documentation ✅
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.
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.
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.
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.
There still arent any known issues in our code.
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 |
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.
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.