A single player turn-based empire building game. A player initially chooses one historical city to start his empire with. 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 have the option of building various types of building in any city he has control over and also build armies in order to conquer other cities.
- OOP concepts (Inheritance - Polymorphism - Abstraction - Encapsulation ).
- Exception Handling.
- GUI
- For anyone who wants to learn about OOP, MVC, Swing.
- For anyone who might find this game fun 😌.
- For my future employer who will accept my resume when seeing this wonderful clean code game :"D.
src/
├── buildings
│ ├── ArcheryRange.java
│ ├── Barracks.java
│ ├── Building.java
│ ├── EconomicBuilding.java
│ ├── Market.java
│ └── ..............
├── controllers
│ └── Controller.java
├── engine
│ ├── City.java
│ ├── Distance.java
│ ├── Game.java
│ ├── Player.java
│ └── ............
├── exceptions
│ ├── ArmyException.java
│ ├── BuildingException.java
│ ├── FriendlyCityException.java
│ ├── FriendlyFireException.java
│ └── .......................
├── units
│ ├── Archer.java
│ ├── Army.java
│ ├── Infantry.java
│ ├── Status.java
│ └── ................
├── utlis
│ └── ReadingCSVFile.java
└── views
├── button
│ ├── CityButton.java
│ ├── StyledButton.java
│ └── UnitButton.java
├── MyInputVerifier.java
├── panel
│ ├── ArmyPanel.java
│ ├── CardsPanel.java
│ ├── MilitaryBuildingPanel.java
│ ├── PlayerPanel.java
│ └── .....................
├── RXCardLayout.java
└── view
├── BattleView.java
├── CityView.java
├── EndGameView.java
├── StartView.java
└── ..............
the game consists of 3 views beside the start view
-
World Map View
responsible for viewing the cities of the game , armies of the player and thier status.
-
City View
responsible for showing different buildings for each city where the player could build , upgrade and recruit units ti build his/her army.
-
Battle View
responsible for battles between army of the player and opponent cities where player could manage the battle manually or choose to auto resolve it.