game_shuffle_cards 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/Gemfile +10 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +123 -0
  6. data/Rakefile +2 -0
  7. data/doc/GameShuffleCards/Card.html +622 -0
  8. data/doc/GameShuffleCards/Game.html +1094 -0
  9. data/doc/GameShuffleCards/NotEnoughCardsPerPlayersError.html +123 -0
  10. data/doc/GameShuffleCards/NotEnoughPlayersError.html +123 -0
  11. data/doc/GameShuffleCards/ToManyCardsPerPlayerError.html +123 -0
  12. data/doc/GameShuffleCards/ToManyPlayersError.html +123 -0
  13. data/doc/GameShuffleCards/TooManyCardsDemandedError.html +123 -0
  14. data/doc/GameShuffleCards/ValidateGame.html +438 -0
  15. data/doc/GameShuffleCards.html +129 -0
  16. data/doc/_index.html +198 -0
  17. data/doc/class_list.html +58 -0
  18. data/doc/css/common.css +1 -0
  19. data/doc/css/full_list.css +57 -0
  20. data/doc/css/style.css +339 -0
  21. data/doc/file.README.html +196 -0
  22. data/doc/file_list.html +60 -0
  23. data/doc/frames.html +26 -0
  24. data/doc/index.html +196 -0
  25. data/doc/js/app.js +219 -0
  26. data/doc/js/full_list.js +181 -0
  27. data/doc/js/jquery.js +4 -0
  28. data/doc/method_list.html +159 -0
  29. data/doc/top-level-namespace.html +131 -0
  30. data/features/deck_of_cards.feature +58 -0
  31. data/features/initial_settings.feature +76 -0
  32. data/features/step_definitions/deck_of_cards_step.rb +21 -0
  33. data/features/step_definitions/initial_settings_step.rb +44 -0
  34. data/features/step_definitions/step.rb +2 -0
  35. data/game_shuffle_cards.gemspec +24 -0
  36. data/lib/game_shuffle_cards/card.rb +26 -0
  37. data/lib/game_shuffle_cards/exceptions.rb +9 -0
  38. data/lib/game_shuffle_cards/game.rb +84 -0
  39. data/lib/game_shuffle_cards/validate_game.rb +43 -0
  40. data/lib/game_shuffle_cards/version.rb +5 -0
  41. data/lib/game_shuffle_cards.rb +2 -0
  42. metadata +119 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 69e496d0475541daaba81fe2ab6cdb6ec0c740a5
4
+ data.tar.gz: ddb1905099da8999f844ad85169470fef5d65633
5
+ SHA512:
6
+ metadata.gz: 1943c71ce2ee01d9477eeaf5994961d1ed359af3c198133f918f2b842b2379fb13020dc7b160c8a8b76a3dfd715f7cd1bd8c932f0d0903532fd379c98c08cb7a
7
+ data.tar.gz: b33bf661505491632b880deeb51fe56ddf453af1ed5fec94f6a6400de11c89d42df80ea77dbea86cf060854aa925d7c387911cdf367b4f7e798857b0d6fbe983
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in game_shuffle_cards.gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ gem 'shoulda-matchers'
8
+ gem 'cucumber'
9
+ gem 'rspec-expectations'
10
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Diego
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,123 @@
1
+ # GameShuffleCards
2
+
3
+ A Game to shuffle a deck of cards and presents the result
4
+ With the class Game you can handle a deck of cards and setting the players and the cards per player. And shuffle the deak of cards.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'game_shuffle_cards'
12
+ ```
13
+
14
+ And then execute:
15
+
16
+ $ bundle
17
+
18
+ Or install it yourself as:
19
+
20
+ $ gem install game_shuffle_cards
21
+
22
+ ## Usage
23
+ ```ruby
24
+ # create a new game with 5 players and 3 cards per player
25
+ game = Game.new(5,3)
26
+ # to shuffle a deck of cards , 3 cards per player , to 5 players
27
+ game.results
28
+
29
+ {0=>["8 of spades", "Q of clubs", "5 of diamonds", "3 of hearts"], 1=>["9 of spades", "5 of clubs", "9 of clubs", "J of clubs"]}
30
+ ```
31
+
32
+
33
+ If you repeat the `game.result` the deck will go emptying
34
+
35
+ ```bash
36
+ 2.2.0 :003 > g.results
37
+ => {0=>["8 of spades", "Q of clubs", "5 of diamonds", "3 of hearts"], 1=>["9 of spades", "5 of clubs", "9 of clubs", "J of clubs"]}
38
+ 2.2.0 :004 > g.results
39
+ => {0=>["10 of clubs", "A of clubs", "5 of hearts", "4 of spades"], 1=>["Q of diamonds", "2 of hearts", "3 of spades", "8 of clubs"]}
40
+ 2.2.0 :005 > g.results
41
+ => {0=>["6 of clubs", "A of diamonds", "10 of diamonds", "J of hearts"], 1=>["7 of spades", "8 of hearts", "K of diamonds", "4 of clubs"]}
42
+ 2.2.0 :006 > g.results
43
+ => {0=>["Q of hearts", "7 of diamonds", "9 of hearts", "10 of hearts"], 1=>["2 of clubs", "4 of hearts", "4 of diamonds", "7 of clubs"]}
44
+ 2.2.0 :007 > g.results
45
+ => {0=>["5 of spades", "J of spades", "9 of diamonds", "10 of spades"], 1=>["2 of diamonds", "A of hearts", "K of clubs", "3 of diamonds"]}
46
+ 2.2.0 :008 > g.results
47
+ => {0=>["2 of spades", "6 of diamonds", "6 of spades", "K of hearts"], 1=>["A of spades", "3 of clubs", "8 of diamonds", "K of spades"]}
48
+ 2.2.0 :009 > g.results
49
+ => {0=>["J of diamonds", "7 of hearts", "Q of spades", "6 of hearts"], 1=>[]}
50
+ 2.2.0 :010 > g.results
51
+ => {0=>[], 1=>[]}
52
+ ```
53
+ If you want to repeat the operation with the same deck, you could instantiate an object again
54
+
55
+ ```ruby
56
+ game = Game.new
57
+ ```
58
+
59
+ And the deck will be full again.
60
+
61
+
62
+ The deck has defined in class Game the constants you can change it to another type of deck.
63
+ By default there are 52 cards: 4 suits and 13 values, they are
64
+ |A of clubs |
65
+ |2 of clubs |
66
+ |3 of clubs |
67
+ |4 of clubs |
68
+ |5 of clubs |
69
+ |6 of clubs |
70
+ |7 of clubs |
71
+ |8 of clubs |
72
+ |9 of clubs |
73
+ |10 of clubs |
74
+ |J of clubs |
75
+ |K of clubs |
76
+ |Q of clubs |
77
+ |A of hearts |
78
+ |2 of hearts |
79
+ |3 of hearts |
80
+ |4 of hearts |
81
+ |5 of hearts |
82
+ |6 of hearts |
83
+ |7 of hearts |
84
+ |8 of hearts |
85
+ |9 of hearts |
86
+ |10 of hearts |
87
+ |J of hearts |
88
+ |K of hearts |
89
+ |Q of hearts |
90
+ |A of spades |
91
+ |2 of spades |
92
+ |3 of spades |
93
+ |4 of spades |
94
+ |5 of spades |
95
+ |6 of spades |
96
+ |7 of spades |
97
+ |8 of spades |
98
+ |9 of spades |
99
+ |10 of spades |
100
+ |J of spades |
101
+ |K of spades |
102
+ |Q of spades |
103
+ |A of diamonds |
104
+ |2 of diamonds |
105
+ |3 of diamonds |
106
+ |4 of diamonds |
107
+ |5 of diamonds |
108
+ |6 of diamonds |
109
+ |7 of diamonds |
110
+ |8 of diamonds |
111
+ |9 of diamonds |
112
+ |10 of diamonds |
113
+ |J of diamonds |
114
+ |K of diamonds |
115
+ |Q of diamonds |
116
+
117
+ ## Contributing
118
+
119
+ 1. Fork it ( https://github.com/diegopiccinini/game_shuffle_cards/fork )
120
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
121
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
122
+ 4. Push to the branch (`git push origin my-new-feature`)
123
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+