Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

An addictive game to help slog through flash-card memorization

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitattributes
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 Gemfile
Octocat-spinner-32 Gemfile.lock
Octocat-spinner-32 Guardfile
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile
Octocat-spinner-32 warcards.gemspec

Code Climate Build Status


What is it?

Use a deck of flash cards to play the card game war!

Creates a deck of 52 flash cards and assigns them all suits and values. To win a round you must have the higher card and answer the opponents card correctly. Incorrect answers result in a draw. The opponent has a scaled-by-difficulty chance to answer your card correctly if it has the higher card.

War is declared when you both have the same value card. To win War, you must answer 2 of your opponent's 3 cards correctly.

Game ends when one of you is out of cards.

Implementation concepts

  • Keep track of # of right and wrong answers for each flash-card.

  • consider using ratio of right/wrong + #times seen to scale how often a flash-card is seen.

  • You might make a pool of questions > 52 and select the question for each card out of the pool as it is 'flipped'. Decouple the flash-card from the game card. the game cards are just a token to track game progress.


Add this line to your application's Gemfile:

gem 'warcards'

And then execute:

$ bundle

Or install it yourself as:

$ gem install warcards


As of today, if you run bin/warcards it will play a game of war with you and quiz you as you play.


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Something went wrong with that request. Please try again.