Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abdulaziz-hassan/the-conqueror

A single player turn-based empire building game implemented in Java
https://github.com/abdulaziz-hassan/the-conqueror

exception-handling gui java oops-in-java

Last synced: 7 days ago
JSON representation

A single player turn-based empire building game implemented in Java

Awesome Lists containing this project

README

        

# The Conqueror

A single player turn-based empire building game.

# Game Description

A player initially chooses one historical city to start his empire with (Cairo, Rome, or Sparta). The goal is to conquer the whole
world by taking control over every other city under a certain amount of turns. In order to
achieve this goal, the player has the option of building various types of buildings in any city he
has control over and also build armies in order to conquer other cities.

### Winning/Losing

The player can win if he/she managed to conquer all cities available in the game under the determined amounts of turns. If these turns passed and the player did not achieve this goal, this isconsidered a loss.

### Conquering a city

Each city has an army that defends it from conquerors. The player needs to build a powerful
army and defeat the defending army in order to take control over the city. Once the attacking
army reaches the city, it can either lay siege on the target city trying to starve them out or
directly attack the defending army. When the player engages
the defending army in a battle, he can choose to either automatically resolves the battle or
he manually commands his units during it.

### Available resources

Throughout his journey of conquering the world, the player has two major resources that he
can spend in order to achieve his goal namely gold and food.

1. Gold is the main resource needed to build or upgrade any building and also to recruit
units. Gold will also be used to maintain and upkeep any army the player controls.

2. Food, on the other hand, is used to keep the soldiers in the player’s army alive. All
soldiers consume a certain amount of food each turn. They consume more while marching
to a city and will consume the most while besieging the city. If the player does not have
sufficient amount of food for all of his soldiers, they will gradually die each turn until he
has enough food again to feed his army.

### Buildings
The player can build multiple types of buildings to help him achieving his goal of conquering
the world. There are two types of buildings, economic and military. Economic buildings help
the player build his economy as well as provide enough food supplies for his army. Military
buildings are the ones that the player will use to build his armies by recruiting different types of
units. Buildings can be upgraded to enhance their effects. The higher the level of the building,
the better its outcome.

# Technologies Used

* [Object-oriented programming (OOP)](https://en.wikipedia.org/wiki/Object-oriented_programming#:~:text=Object%2Doriented%20programming%20(OOP),(often%20known%20as%20methods)) (Encapsulation, Abstraction, Inheritance, and Polymorphism)
* GUI [(Java Swing)](https://www.javatpoint.com/java-swing)
* [Exception Handling](https://www.javatpoint.com/exception-handling-in-java)
* [JUnit4](https://junit.org/junit4/)

# Contributors

* [Abdulaziz Hassan](https://github.com/Abdulaziz-Hassan)
* [Omar Sherif](https://github.com/omar-sherif9992)
* Shehab Ibrahim