Class: CardDeck::Card

Inherits:
Object
  • Object
show all
Defined in:
lib/card_deck/card.rb

Overview

The central part of any card game. It is what makes card games ‘Card’ games.

Constant Summary collapse

Num =

Legal arguments for parameter num in Card#new.

%w(Ace King Queen Jack Joker) + Array(2..10)
Suit =

Legal arguments for parameter suit in Card#new

[Hearts, Spades, Diamonds, Clubs]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(num = Num.sample, suit = Suit.sample) ⇒ Card

Returns a new instance of Card.

Parameters:

  • suit (String) (defaults to: Suit.sample)
  • num (String, Fixnum) (defaults to: Num.sample)


15
16
17
18
# File 'lib/card_deck/card.rb', line 15

def initialize(num=Num.sample, suit=Suit.sample)
  suit = Card.const_get suit.capitalize unless Suit.include? suit
  @num, @suit = num, suit
end

Instance Attribute Details

#numString, Fixnum

Returns must be Ace, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, or Joker.

Returns:

  • (String, Fixnum)

    must be Ace, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, or Joker



8
9
10
# File 'lib/card_deck/card.rb', line 8

def num
  @num
end

#suitString

Returns must be spades, diamonds, clubs, or hearts.

Returns:

  • (String)

    must be spades, diamonds, clubs, or hearts



9
10
11
# File 'lib/card_deck/card.rb', line 9

def suit
  @suit
end

Instance Method Details

#abbreviationString Also known as: abbr, inspect

The shorter representation of the card

Returns:

  • (String)


24
25
26
27
28
29
# File 'lib/card_deck/card.rb', line 24

def abbreviation
  unless @num == "Joker"
    if @num == 10 then @suit + @num.to_s
    else @suit + Array(@num.to_s).fetch(0) end
  else @num.to_s end
end

#black?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/card_deck/card.rb', line 30

def black? # @return [Boolean]
  suit == Spades || suit == Clubs
end

#red?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/card_deck/card.rb', line 33

def red? # @return [Boolean]
  suit == Hearts || suit == Diamonds
end