All Projects → bkimminich → kata-tcg

bkimminich / kata-tcg

Licence: MIT License
Code Kata for a two-player trading card game

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to kata-tcg

extreme-carpaccio
Slicing and coding game
Stars: ✭ 116 (+262.5%)
Mutual labels:  kata, coding-dojo, code-kata
awesome-javascript-katas
A curated list of javascript katas.
Stars: ✭ 25 (-21.87%)
Mutual labels:  kata
KataContactsKotlin
KataContacts written in Kotlin. The main goal is to practice Clean Architecture Development
Stars: ✭ 47 (+46.88%)
Mutual labels:  kata
Monoidz-kata
Various kata & content to learn and practice design with monoidz inside
Stars: ✭ 16 (-50%)
Mutual labels:  kata
hs-bugs
Unofficial Hearthstone issue tracker
Stars: ✭ 67 (+109.38%)
Mutual labels:  hearthstone
tdd roman csharp
Kata: TDD Arabic to Roman Numerals with C#
Stars: ✭ 14 (-56.25%)
Mutual labels:  kata
hdt-plugin-endgame
A Hearthstone Deck Tracker plugin that helps keep track of your opponents deck types after a game
Stars: ✭ 20 (-37.5%)
Mutual labels:  hearthstone
hs-icons
Hearthstone vector icons
Stars: ✭ 36 (+12.5%)
Mutual labels:  hearthstone
Clean Marvel Kotlin
This repository contains a detailed sample app that implements Clean architecture and MVP in Kotlin using RxJava2, Retrofit
Stars: ✭ 27 (-15.62%)
Mutual labels:  kata
KataSuperHeroesIOS
Super heroes kata for iOS Developers. The main goal is to practice UI Testing.
Stars: ✭ 69 (+115.63%)
Mutual labels:  kata
solid-kata
Kata for practicing SOLID principles
Stars: ✭ 18 (-43.75%)
Mutual labels:  kata
hearthstats
Scrape Hearthstone decks from HearthPwn, then build a SQLite database of the results. Can also scrape card collection data from HearthPwn/Innkeeper, and integrates with omgvamp's Mashape Hearthstone API to build a table of card data that can be used to make more advanced queries.
Stars: ✭ 11 (-65.62%)
Mutual labels:  hearthstone
hearthstone-card-images
(Archived, see below) Hearthstone card image repository
Stars: ✭ 63 (+96.88%)
Mutual labels:  hearthstone
hsproto
Hearthstone Protobuf files
Stars: ✭ 31 (-3.12%)
Mutual labels:  hearthstone
nerdojo
🥋 Coding Dojo é uma forma de treinar suas habilidades em desenvolvimento de sistemas. Usamos o formato KATA. Nesse formato vamos apresentar o desafio e apresentar a proposta de solução (sem mostrar o código), e reunir as pessoas em equipes. Esse repositório serve como uma central de tudo o que acontece no NCD. Fique por dentro!
Stars: ✭ 36 (+12.5%)
Mutual labels:  coding-dojo
HearthSprite
Android炉石传说脚本
Stars: ✭ 46 (+43.75%)
Mutual labels:  hearthstone
php-finder refactoring-kata
🐘🔍Incomprehensible Finder Refactoring Kata port for PHP
Stars: ✭ 22 (-31.25%)
Mutual labels:  kata
lushi script
This script is to save your time from Mercenaries mode of Hearthstone
Stars: ✭ 174 (+443.75%)
Mutual labels:  hearthstone
dojo3d
A javascript library for simple 3D interactive story telling,
Stars: ✭ 123 (+284.38%)
Mutual labels:  coding-dojo
java-basic-skeleton
☕🚀 Java Bootstrap: Skeleton for your new projects
Stars: ✭ 37 (+15.63%)
Mutual labels:  kata

Code Kata: Trading Card Game (TCG) Build Status

In this Code Kata you will be implementing a two-player trading card game. The rules were very loosely inspired by Hearthstone - Heroes of Warcraft®. This Kata is supposed to be slightly more complex than some of the well-known traditional Katas (e.g. Roman Numbers, Bowling Game or FizzBuzz) especially when adding some of the Advanced Variations proposed below. Kata TCG leaves room for different focuses (like playing cards based on user input and/or algorithmic decision logic) and can be approached iteratively with TDD from different angles. The Kata should also be well suited for your own rule extensions and modifications. It should offer challenges for developers of all experience levels.

Kata TCG is now listed in the Kata Catalogue hosted at codingdojo.org: http://codingdojo.org/cgi-bin/index.pl?KataTradingCardGame

TCG Rules

Preparation

Rule
Each player starts the game with 30 Health and 0 Mana slots. Starting Health and Mana
Each player starts with a deck of 20 Damage cards with the following Mana costs: 0,0,1,1,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8 Default Starting Deck
From the deck each player receives 3 random cards has his initial hand. Draw Starting Hand
One player is randomly chosen to be the starting active player. The other player draws a 4th card from his deck to compensate him for not playing the first turn. Starting Player and Extra Card

Basic Gameplay

Step Rule
1. The active player receives 1 Mana slot up to a maximum of 10 total slots. Receiving Mana Slot
2. The active player's empty Mana slots are refilled. Mana Refill
3. The active player draws a random card from his deck. Draw Card
4. The active player can play as many cards as he can afford. Any played card empties Mana slots and deals immediate damage to the opponent player equal to its Mana cost. Cause Damage
5. If the opponent player's Health drops to or below zero the active player wins the game. Kill Opponent
6. If the active player can't (by either having no cards left in his hand or lacking sufficient Mana to pay for any hand card) or simply doesn't want to play another card, the opponent player becomes active.

Special Rules

Rule Description
Bleeding Out If a player's card deck is empty before the game is over he receives 1 damage instead of drawing a card when it's his turn. Bleedout
Overload If a player draws a card that lets his hand size become >5 that card is discarded instead of being put into his hand. Overload
Dud Card The 0 Mana cards can be played for free but don't do any damage either. They are just annoyingly taking up space in your hand. Dud Card

Advanced Variations

When the normal game rules have become too easy/boring you might consider adding some additional rules like those described below. Some of them will increase the complexity of the game significantly, so you might not want to use all extra rules at once:

Healing

Rule
When playing a card the active player can choose to use it for causing damage (see Basic Gameplay) or for healing himself by a value equal to the mana cost amount. Healing
Players cannot heal up above 30 health. Health Cap

Minions

Rule
Let players choose to play cards either as immediate damage Attacks (same as cards generally worked in the Basic Gameplay rules) or as Minions that are put on the board instead. Minions will use the mana cost of their card as Health and Damage value. Playing a 0 card will create a minion with 1 Health and 0 Damage. Playing Card as Minion
Health has to be tracked when they receive damage.
Each player can have a maximum of 3 Minions on the board at any given time.
A Minion will sleep in the turn it was put on the board. Sleeping on first turn
In any subsequent turn each Minion can be used once to deal damage to the opponent player or an opponent Minion. Attacking Opponent or enemy Minion
A Minion fighting another Minion will result in them dealing their damage value to each other simultaneously. Simultaneous Damage
Sleeping Minions will defend themselves in the same way when attacked by another Minion. Sleeping Minions fight back
Players can choose to play an Attack against a Minion. The attacked Minion will not defend itself in this case, thus the attacking player receives no damage from it. Player fighting Minion
When a Minions health drops to or below zero it is removed from the board. Kill Minion

Miscellaneous

  • Let Mana cost and damage dealt be different from each other thus making cheap powerful, expensive mediocre or entirely useless cards possible. This can add a whole new layer of play strategy as some cards might not be desired to be ever played, but eventually have to in order to free your hand for better cards.
  • Introduce Card Drawer cards that cost Mana but don't do any damage. Instead they let you draw a given number of cards from your deck. Those cards can be used in the current turn or later on (just as if normally drawn at the beginning of the active player's turn).
  • Allow players to create their own decks of 20 cards from a larger Card Pool. Let those decks be saved to and loaded from disk before starting a game.

Sample Implementation Status

Language Quality Metrics
Java Coverage Status
Groovy Coverage Status
JS Test Coverage Code Climate
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].