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