A turn-based card game project inspired by the Yu-Gi-Oh! Trading Card Game, implemented in C++.
For now, there are two characters in this game: Yugi Muto and Seto Kaiba.
Each of the characters has their own deck and there are unique cards in their deck.
Phases of The Game
- Draw Phase
• Draw Phase is at the very beginning of each turn. The turn player draws one card from the top of their deck during this time.
- Main Phase
• Main Phase is a phase that occurs right after Draw Phase. In this phase, player must choose a card to play from his/her hand (with left click). User should left click on the card that he/she wants to play.
• Option 1: If current player chooses a monster card to play, this monster card will be played in ATK mode if ATK point > DEF point. Otherwise, this monster will be played in defense mode.
• Option 2: If the current player decides to use a spell card, the special ability of that spell card is activated as soon as it is played.
• Option 3: If the current player prefers to use a trap card, it will be placed in his/her field in face-down position. So that opposing player would not know which trap card have been played. Unique functionality of this trap card will be activated when the current player receives attack by the opposing player in battle phase.
• User is also able to change mode of one of his/her active monster(optional). Maximum one monster is allowed in each main phase. User should right click on that monster if he/she wants to change mode one of the monsters.
- Battle Phase
• Battle phase is the third and last phase of the player's turn. In this phase, you can declare attacks.
• You should choose an attacker monster from your monster field (with left click). If there are no monsters in opponent's monster zone, a direct attack is declared. Which means, inflicting damage equal to the attacking monster's ATK points.
• But if there are monster(s) in your opponent's field, you should choose a target right after you choose an attacker from your field.
• When the current player declares an attack in this phase but opposing player has a trap card in his/her field, then unique functionality of this trap card will be activated and opposing player will block the attack of current player.
Note that Battle Phase of a player is automatically skipped in following cases:
• If it's the first or second round, the Battle Phase is automatically skipped, adding an extra layer of strategy to early-game play.
• If current player has no attacking monster in his field (means that his monster field may be fully empty or there are monsters that in defense mode.)
How to win the duel?
- Life Point Victory
• Each player starts with a 8000 life points.
• The primary goal is to reduce your opponent's life points to zero.
• You achieve this by successfully attacking your opponent's monsters or declaring direct attacks during the Battle Phase.
• Additionally, certain card effects may reduce or increase life points.
- Deck Exhaustion
• Also, you win if your opponent doesn't have any cards left in their deck, along with reducing their life points to zero.
• If a player tries to draw a card and has none left in their deck, the other player wins.
- Exodia Victory
• There's a legendary win condition known as "Exodia."
• If a player successfully assembles all five pieces of Exodia in their hand (Head, Right Leg, Left Leg, Right Arm, Left Arm) at the same time, that player immediately wins the duel.
• It's a rare and powerful strategy, so keep an eye on the cards you and your opponent draw.
Note that only Yugi Muto has Exodia cards in this game.
How to run the game?
-
Install exec folder.
-
run MiniYuGiOhGame.exe
Contributions of Group Members
Emre Demirbaş and Mehmet Ali Yılmaz focused on developing the backend of the game, handling tasks related to game logic and implementing the functionality of each card in the game.
Ömer Faruk Özüyağlı and Muhammed Esat Çelebi were responsible for the frontend development of the game. They worked on creating the user interface for players.