Class: Rb21::Card
- Inherits:
-
Object
- Object
- Rb21::Card
- Defined in:
- lib/rb21/card.rb
Constant Summary collapse
- SUITS =
%w[Clubs Diamonds Hearts Spades].freeze
- FACES =
%w[Jack Queen King].freeze
- NORMALS =
(2..9).map(&:to_s).freeze
- ACE =
"Ace"- TEN_VALUES =
(["10"] + FACES).freeze
- ALL_NAMES =
(TEN_VALUES + NORMALS + [ACE]).freeze
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#suit ⇒ Object
readonly
Returns the value of attribute suit.
Instance Method Summary collapse
-
#initialize(name, suit) ⇒ Card
constructor
A new instance of Card.
- #value ⇒ Object
Constructor Details
#initialize(name, suit) ⇒ Card
Returns a new instance of Card.
13 14 15 16 17 18 |
# File 'lib/rb21/card.rb', line 13 def initialize(name, suit) raise ArgumentError, "Invalid name" unless ALL_NAMES.include?(name) raise ArgumentError, "Invalid suit" unless SUITS.include?(suit) @name = name @suit = suit end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
11 12 13 |
# File 'lib/rb21/card.rb', line 11 def name @name end |
#suit ⇒ Object (readonly)
Returns the value of attribute suit.
11 12 13 |
# File 'lib/rb21/card.rb', line 11 def suit @suit end |
Instance Method Details
#value ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rb21/card.rb', line 20 def value case @name when ACE [1, 11] when *TEN_VALUES [10] else [@name.to_i] end end |