
โ ๏ธ This project was made for school with a deadline and I chose to leave it as it was at the time of submission โ ๏ธ
This project is a simplified clone of the card game Magic the Gathering Arena, it implements the basic mechanics of the game with a display in the console (no external libraries were allowed). The major difference with the original game is that we took the cards from another game: Clash Royale.
-
Create your own decks of cards (with a .txt file in the decks folder).
-
Start a game with two players and choose their names.
-
Play the cards you want to use.
-
Attack with your creatures.
-
Block opponent's creatures.
-
Change the order of attacks.
The game has a total of 93 cards, 5 lands, 72 creatures and 16 spells.
Land cards give you the resources to play other cards:
| Swamp |
Island |
Forest |
Mountain |
Plain |
 |
 |
 |
 |
 |
Black |
Blue |
Green |
Red |
White |
Creatures cards can be played to attack or defend, they stay in the game until they die.
They can have standard capacities, see the list below:
Flying: Only creatures whith Reach can attack it.
Reach: Can attack Flying creatures.
First Strike: Attack first.
Haste: Can attack on first turn.
Unblockable: Cannot be blocked and cannot attack while blocking.
Zone Damage: Damages go to all blockers.
Multi Hit: Attack both blockers and the player.
Freeze: Low the blocker's dammages.
Kamikaze: Die on attack.
Shield: The shield takes the first hit.
They can also have unique abilities, their effect is described in the Unique ability column:
| Card |
Type |
Price |
Power / Toughness |
Capacities |
Unique ability |
 Electro Spirit |
Spirit |
1 |
2 / 1 |
Freeze, Kamikaze |
|
 Fire Spirit |
Spirit |
1 |
2 / 1 |
Zone_Damage, Kamikaze |
|
 Ice Spirit |
Spirit |
1 |
1 / 2 |
Freeze, Kamikaze |
|
 Skeletons |
Skeleton |
1 |
2 / 1 |
|
|
 Bats |
Bat |
1  |
3 / 1 |
Flying, Reach |
|
 Spear Goblins |
Goblin |
1  |
2 / 2 |
Reach |
|
 Bomber |
Skeleton |
1  |
3 / 1 |
Zone_Damage |
|
 Goblins |
Goblin |
1  |
2 / 2 |
|
|
 Firecracker |
Human |
2  |
3 / 2 |
Reach, Multi_Hit, Zone_Damage |
|
 Goblin Gang |
Goblin |
2  |
3 / 2 |
Reach |
Adds 1 power to all Goblin type allies while alive. |
 Minions |
Minion |
2  |
3 / 2 |
Flying, Reach |
|
 Archers |
Human |
2  |
3 / 2 |
Reach |
|
 Knight |
Knight |
2  |
2 / 3 |
|
|
 Skeleton Dragons |
Dragon |
2  |
3 / 3 |
Flying, Reach, Zone_Damage |
|
 Rascals |
Human |
3  |
3 / 4 |
Reach |
|
 Minion Horde |
Minion |
3  |
5 / 2 |
Flying, Reach |
|
 Barbarians |
Human |
3  |
4 / 3 |
|
|
 Elite Barbarians |
Human |
4  |
4 / 4 |
|
|
 Royal Giant |
Giant |
4  |
3 / 5 |
Reach, Unblockable |
|
 Royal Recruits |
Human |
4  |
5 / 4 |
Multi_Hit |
|
 Ice Golem |
Golem |
1  |
1 / 3 |
Unblockable, Freeze |
Applies the effects of the Freeze capacity to all opponent creatures on death. |
 Elixir Golem |
Golem |
2  |
1 / 4 |
Unblockable |
Spawns 1 Elixir Golemites on death. Elixir Golemites spawns 1 Sentient Blobs on death. Sentient Blobs gives 2 Forest cards to the opponent on death. |
 Dart Goblin |
Goblin |
2  |
3 / 2 |
Reach |
|
 Mega Minion |
Minion |
2  |
2 / 3 |
Flying, Reach |
|
 Battle Healer |
Angel |
2  |
1 / 3 |
Flying, Reach |
Adds 1 toughness to all allied creatures while alive. |
 Flying Machine |
Machine |
3  |
2 / 4 |
Flying, Reach |
|
 Zappies |
Machine |
3  |
3 / 3 |
Reach, Freeze |
|
 Battle Ram |
Human |
3  |
3 / 1 |
Haste, Unblockable, Kamikaze |
Spawns 1 Barbarian on death. |
 Hog Rider |
Boar |
3  |
3 / 3 |
Haste, Unblockable |
|
 Mini Pekka |
Demon |
2  |
4 / 2 |
|
|
 Musketeer |
Human |
2  |
3 / 3 |
Reach |
|
 Valkyrie |
Human |
2  |
2 / 4 |
Zone_Damage |
|
 Wizard |
Wizard |
3  |
4 / 3 |
Reach, Zone_Damage |
|
 Royal Hogs |
Boar |
3  |
4 / 3 |
Haste, Unblockable |
|
 Giant |
Giant |
3  |
2 / 5 |
Unblockable |
|
 Three Musketeers |
Human |
6  |
6 / 5 |
Reach |
|
 Wall Breakers |
Skeleton |
1  |
5 / 2 |
Unblockable, Kamikaze |
|
 Barbarian Barrel |
Human |
1  |
2 / 2 |
Haste |
Inflicts 1 damage to all enemy creatures on spawn. |
 Guards |
Skeleton |
2  |
2 / 3 |
Shield |
|
 Skeleton Army |
Skeleton |
2  |
4 / 1 |
Multi_Hit |
|
 Goblin Barrel |
Goblin |
2  |
3 / 2 |
Haste, Unblockable |
|
 Hunter |
Humain |
2  |
3 / 3 |
Reach, Multi_Hit, Zone_Damage |
|
 Dark Prince |
Knight |
2  |
2 / 4 |
Haste, Zone_Damage, Shield |
|
 Baby Dragon |
Dragon |
3  |
3 / 3 |
Flying, Reach, Zone_Damage |
|
 Electro Dragon |
Dragon |
3  |
4 / 3 |
Flying, Reach, Freeze |
|
 Cannon Cart |
Machine |
4  |
3 / 4 |
|
Spawns 1 Cannon on death. |
 Executioner |
Human |
3  |
3 / 4 |
Multi_Hit, Reach |
|
 Bowler |
Goblin |
3  |
3 / 4 |
Zone_Damage, Multi_Hit |
|
 Prince |
Knight |
3  |
4 / 3 |
First_Strike, Haste |
|
 Witch |
Wizard |
4  |
3 / 4 |
Reach, Zone_Damage |
Spawns 1 Skeleton every turn. |
 Balloon |
Skeleton |
3  |
5 / 2 |
Flying, Unblockable, Zone_Damage |
Inflicts 1 damage to all enemy creatures on death. |
 Goblin Giant |
Goblin |
4  |
3 / 5 |
Reach, Unblockable |
Spawns 1 Spear Goblins on death |
 Giant Skeleton |
Skeleton |
4  |
2 / 6 |
|
Inflicts 3 damages to all enemy creatures on death. |
 Pekka |
Demon |
5  |
4 / 5 |
|
|
 Electro Giant |
Giant |
5  |
3 / 7 |
Reach, Unblockable, Freeze |
|
 Golem |
Golem |
6  |
2 / 8 |
Unblockable |
Inflicts 1 damage to all enemy creatures and spawns 1 Golemites on death. Golemites also inflicts 1 damage to all enemy creatures on death. |
 Fisherman |
Human |
2  |
2 / 3 |
First_Strike |
|
 Royal Ghost |
Specter |
2  |
3 / 2 |
First_Strike |
|
 Bandit |
Human |
2  |
3 / 2 |
First_Strike, Haste |
|
 Miner |
Human |
2  |
2 / 3 |
Haste, Unblockable |
|
 Princess |
Human |
2  |
3 / 2 |
Reach, Zone_Damage |
|
 Ice Wizard |
Wizard |
2  |
2 / 3 |
Reach, Zone_Damage, Freeze |
Inflicts the effects of Freeze capacity to all enemy creatures on spawn. |
 Mother Witch |
Wizard |
3  |
2 / 4 |
Reach |
Turns creatures she kills into hogs. |
 Magic Archer |
Elf |
3  |
3 / 3 |
Reach, Multi_Hit |
|
 Night Witch |
Wizard |
3  |
3 / 3 |
|
Spawns 1 Bat every turn. |
 Electro Wizard |
Wizard |
2  |
3 / 3 |
Reach, Multi_Hit, Freeze |
Inflicts 1 damage to all enemy creatures on spawn. |
 Inferno Dragon |
Dragon |
2  |
4 / 2 |
Flying, Reach |
|
 Lumberjack |
Human |
3  |
4 / 2 |
|
Casts a Rage spell 1 turn after his death. |
 Ram Rider |
Human |
3  |
3 / 4 |
Multi_Hit, Freeze, Haste |
|
 Sparky |
Machine |
5  |
5 / 3 |
Zone_Damage |
|
 Mega Knight |
Knight |
5  |
3 / 6 |
First_Strike, Zone_Damage |
Inflicts 2 damages to all enemy creatures on spawn. |
 Lava Hound |
Demon |
5  |
2 / 7 |
Flying, Reach, Unblockable |
Spawns 1 Lava Pups on death. |
Spell cards can be played to apply effects on the game:
See the installation part of my Skeleton project template.
If you just want to test the program without editing the source code, go see the Releases.