class Hand

Attributes

cards[RW]
inspect[RW]

Public Class Methods

new() click to toggle source
# File lib/hand.rb, line 6
def initialize
        @cards = Array.new(3) {$deck.shift}
end

Public Instance Methods

play(card) click to toggle source

@param card [CardDeck::Card] the card played @return [void] @note Gameplay method

# File lib/hand.rb, line 13
def play(card)
        raise "Card not found" unless @cards.include? card 
        if card.num == "King"
                $value = 99
        elsif card.num == "Joker"
                $value = 0
        else
                $value += card.value
        end
        i, done = 0, false
        for index in @cards
                if index.num == card.num and not done
                        discard = @cards[i]
                        @cards.delete_at i
                        @cards.push $deck.shift
                        $deck.push discard
                        done = true
                        $deck.shuffle!
                end
                i += 1
        end
        card
end
test_outcomes() click to toggle source

@return [Array<Integer>] @note Used by the CPU to determine which card to play. Parameter card needs to be an instance of Card.

# File lib/hand.rb, line 46
def test_outcomes
        outcomes = Array.new
        @cards.each do |card| 
                test_value = case card.num
                when "King"
                        if (@cards - [card]).any? {|card| [4, 9, "Jack", "Queen", "King", "Joker"].include? card.num} || rand < 0.1 
                                99
                        else -99
                        end
                when "Joker" then 0
                else
                        $value + card.value
               end
               test_value = -100 if test_value > 99
                outcomes << test_value
        end
        return outcomes
end
view_cards() click to toggle source

@return [void] Displays cards

# File lib/hand.rb, line 39
def view_cards
        print "These are your cards:  "
        @cards.each {|card| print "#{card}  "}
end