Sha256: fefcb77d919af3a94534d26f819783be24b628cd985e102f4c68008a47370b93
Contents?: true
Size: 1.56 KB
Versions: 1
Compression:
Stored size: 1.56 KB
Contents
require_relative "card.rb" $deck = Deck.new(jokers: true).cards.shuffle! class Hand # Creates an object that holds and can play cards. Interacts with Deck objects. @@deck = Deck.new.cards.shuffle! attr_accessor :cards # @return [Array<CardDeck::Card>] def initialize @cards = Array.new(3) {$deck.shift} end # @param card [CardDeck::Card] the card played # @return [void] # @note Gameplay method 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 # @return [void] # Displays cards def view_cards print "These are your cards: " @cards.each {|card| print "#{card} "} end alias inspect cards # @return [Array<Integer>] # @note Used by the CPU to determine which card to play. Parameter card needs to be an instance of Card. 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 -1 end when "Joker" then 0 else $value + card.value end test_value = -1 if test_value > 99 outcomes << test_value end return outcomes end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
99_game-4.0.3 | lib/hand.rb |