The 3's 2 hand 2 card Blackjack
scottmills edited this page Apr 22, 2011
·
1 revision
class Deck
attr_accessor :cards
@@suits = ['C', 'D', 'H', 'S']
@@values = [2,3,4,5,6,7,8,9,"t","j","q","k","a"]
def initialize
@cards = []
@@suits.each do |suit|
@@values.each do |value|
@cards << suit + value.to_s
end
end
shuffle
end
def shuffle
@cards = @cards.sort_by{rand}
end
def deal
@cards.pop
end
end
class Hand
attr_accessor :cards
def initialize
@cards = []
end
def add_a_card(card)
@cards << card
end
def score
value = 0
aces = 0
@cards.each do |card|
if card[/\d/]
value += card[/\d/].to_i
end
if card[/[jkq]/]
value += 10
elsif card[/a/]
aces += 1
value += 11
end
end
aces.times do
if value > 21
value -= 10
end
end
value
end
end
class Game
def initialize
@deck = Deck.new
@player = Hand.new
@dealer = Hand.new
end
def deal
2.times do
@player.add_a_card(@deck.deal)
@dealer.add_a_card(@deck.deal)
end
end
def show
p @dealer
p @player
if @player.score > @dealer.score
p "You win"
else
p "You lose"
end
p "Dealer: #{@dealer.score} - Player: #{@player.score}"
end
end
game = Game.new
game.deal
game.show