cards_on_deck 0.1.1 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '05269fc418b5da139bde9724c9ac98497c415f9af62740b86058bdd596a820f8'
4
- data.tar.gz: 22bd6a76e092c62f599a67cd636254fdb7b3294b3b37b82dc97ca2d803eed9d2
3
+ metadata.gz: b4b8aaf8416755bcc407d153de7682265bb9051c21ce2d976b1da98e1c5cfe24
4
+ data.tar.gz: 74a77fb7132e6adcaf611399a2d33b0a21d4db066ba47d205e6b46eadd72ff8e
5
5
  SHA512:
6
- metadata.gz: b2728066b21dfe599ba939ea64a80949a71121d5d0c2468af707c351fbba3f26a9c98f4328c3f6ae5292115292c98e155dfdf3a029153ec05dab84f52544f4fb
7
- data.tar.gz: 972ff4011959bb220aa1b7ede68ea343dfa9c4f8905c83c97109d05bd2b307376eb6fbc1efc76bd8e28135dd08fa4719d67c60b5982bb175410e13fabebbb0d6
6
+ metadata.gz: 9ea2bdfb153c95880be566ae9453621b58d779433d38e1009810b33aefe6e443d1ef8f3db32d604cab89cf7980118e793a7325d5584dd0f9311ddd9ca425f665
7
+ data.tar.gz: 27a0c8bcf9915c91f0d9e6ee919c4aaef96b6b30b43ac7acb56c0e1ab44eac40619b025f8fb6c032947a612abd695310528ad3375ab527ae07d21b22ed56cac6
data/lib/cards_on_deck.rb CHANGED
@@ -5,6 +5,6 @@ require_relative "cards_on_deck/version"
5
5
  module CardsOnDeck
6
6
  class Error < StandardError; end
7
7
 
8
- require 'cards_on_deck/card'
9
- require 'cards_on_deck/deck'
8
+ require 'cards_on_deck/gem_card'
9
+ require 'cards_on_deck/gem_deck'
10
10
  end
@@ -0,0 +1,111 @@
1
+ class GemCard
2
+ attr_accessor :suit, :value
3
+ attr_reader :name, :rank, :code
4
+
5
+ def initialize(suit, value)
6
+ @suit = suit
7
+ @value = value
8
+ @name = "#{@value} of #{@suit}"
9
+ @rank = card_rank(value, suit)
10
+ @code = code_map[@rank]
11
+ end
12
+
13
+ def color
14
+ (@suit && @value) != nil ? color_hash[@suit.capitalize.to_sym] : 'You need to select a suit first'
15
+ end
16
+
17
+ private
18
+
19
+ def color_hash
20
+ {
21
+ 'Hearts': 'Red',
22
+ 'Diamonds': 'Red',
23
+ 'Spades': 'Black',
24
+ 'Clubs': 'Black'
25
+ }
26
+ end
27
+
28
+ def card_rank(value, suit)
29
+ card_value = {
30
+ "Ace" => 14,
31
+ "King" => 13,
32
+ "Queen" => 12,
33
+ "Jack" => 11,
34
+ "Ten" => 10,
35
+ "Nine" => 9,
36
+ "Eight" => 8,
37
+ "Seven" => 7,
38
+ "Six" => 6,
39
+ "Five" => 5,
40
+ "Four" => 4,
41
+ "Three" => 3,
42
+ "Two" => 2
43
+ }
44
+
45
+ card_suit = {
46
+ "Spades" => 0.04,
47
+ "Hearts" => 0.03,
48
+ "Diamonds" => 0.02,
49
+ "Clubs" => 0.01
50
+ }
51
+
52
+ card_value[value] + card_suit[suit]
53
+ end
54
+
55
+ def code_map
56
+ {
57
+ 14.04 => 'AS',
58
+ 13.04 => 'KS',
59
+ 12.04 => 'QS',
60
+ 11.04 => 'JS',
61
+ 10.04 => '0S',
62
+ 9.04 => '9S',
63
+ 8.04 => '8S',
64
+ 7.04 => '7S',
65
+ 6.04 => '6S',
66
+ 5.04 => '5S',
67
+ 4.04 => '4S',
68
+ 3.04 => '3S',
69
+ 2.04 => '2S',
70
+ 14.03 => 'AH',
71
+ 13.03 => 'KH',
72
+ 12.03 => 'QH',
73
+ 11.03 => 'JH',
74
+ 10.03 => '0H',
75
+ 9.03 => '9H',
76
+ 8.03 => '8H',
77
+ 7.03 => '7H',
78
+ 6.03 => '6H',
79
+ 5.03 => '5H',
80
+ 4.03 => '4H',
81
+ 3.03 => '3H',
82
+ 2.03 => '2H',
83
+ 14.02 => 'AD',
84
+ 13.02 => 'KD',
85
+ 12.02 => 'QD',
86
+ 11.02 => 'JD',
87
+ 10.02 => '0D',
88
+ 9.02 => '9D',
89
+ 8.02 => '8D',
90
+ 7.02 => '7D',
91
+ 6.02 => '6D',
92
+ 5.02 => '5D',
93
+ 4.02 => '4D',
94
+ 3.02 => '3D',
95
+ 2.02 => '2D',
96
+ 14.01 => 'AC',
97
+ 13.01 => 'KC',
98
+ 12.01 => 'QC',
99
+ 11.01 => 'JC',
100
+ 10.01 => '0C',
101
+ 9.01 => '9C',
102
+ 8.01 => '8C',
103
+ 7.01 => '7C',
104
+ 6.01 => '6C',
105
+ 5.01 => '5C',
106
+ 4.01 => '4C',
107
+ 3.01 => '3C',
108
+ 2.01 => '2C',
109
+ }
110
+ end
111
+ end
@@ -1,4 +1,4 @@
1
- class Deck
1
+ class GemDeck
2
2
  attr_accessor :cards
3
3
 
4
4
  def initialize(initial_card)
@@ -24,7 +24,7 @@ class Deck
24
24
  if type == 'Standard'
25
25
  standard_values.each do |k, array|
26
26
  array.each do |value|
27
- standard_deck << Card.new(k, value)
27
+ standard_deck << GemCard.new(k.to_s, value)
28
28
  end
29
29
  end
30
30
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CardsOnDeck
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.7"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cards_on_deck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Mulitauopele
@@ -29,8 +29,8 @@ files:
29
29
  - bin/setup
30
30
  - cards_on_deck.gemspec
31
31
  - lib/cards_on_deck.rb
32
- - lib/cards_on_deck/card.rb
33
- - lib/cards_on_deck/deck.rb
32
+ - lib/cards_on_deck/gem_card.rb
33
+ - lib/cards_on_deck/gem_deck.rb
34
34
  - lib/cards_on_deck/version.rb
35
35
  homepage: https://github.com/DanielMulitauopele/CardsOnDeck
36
36
  licenses:
@@ -1,25 +0,0 @@
1
- class Card
2
- attr_accessor :suit, :value
3
- attr_reader :name
4
-
5
- def initialize(suit, value)
6
- @suit = suit
7
- @value = value
8
- @name = "#{@value} of #{@suit}"
9
- end
10
-
11
- def color
12
- (@suit && @value) != nil ? color_hash[@suit.capitalize.to_sym] : 'You need to select a suit first'
13
- end
14
-
15
- private
16
-
17
- def color_hash
18
- {
19
- 'Hearts': 'Red',
20
- 'Diamonds': 'Red',
21
- 'Spades': 'Black',
22
- 'Clubs': 'Black',
23
- }
24
- end
25
- end