Commencé à intégrer les règle d'écarté
This commit is contained in:
1 parent
9e942a3db0
commit
3c7ad236fc
2 files changed
+71
-53
No files matched your search
Binary file not shown.
@@ -8,8 +8,8 @@ class Card
|
||||
@suit = suit
|
||||
end
|
||||
|
||||
def display
|
||||
puts "#{@value} of #{@suit}"
|
||||
def to_s
|
||||
"#{@value} of #{@suit}"
|
||||
end
|
||||
|
||||
def strength
|
||||
@@ -17,13 +17,13 @@ class Card
|
||||
@value.to_i
|
||||
else
|
||||
case @value
|
||||
when "jack"
|
||||
11
|
||||
when "queen"
|
||||
12
|
||||
when "king"
|
||||
13
|
||||
when "ace"
|
||||
11
|
||||
when "jack"
|
||||
12
|
||||
when "queen"
|
||||
13
|
||||
when "king"
|
||||
14
|
||||
end
|
||||
end
|
||||
@@ -35,7 +35,7 @@ class Deck
|
||||
|
||||
def initialize
|
||||
@cards = []
|
||||
values = ["7", "8", "9", "10", "jack", "queen", "king", "ace"]
|
||||
values = ["7", "8", "9", "10", "ace", "jack", "queen", "king"]
|
||||
suits = ["hearts", "diamonds", "clubs", "spades"]
|
||||
|
||||
suits.each do |suit|
|
||||
@@ -55,7 +55,7 @@ class Deck
|
||||
end
|
||||
|
||||
class Player
|
||||
attr_reader :player_name, :score
|
||||
attr_reader :player_name, :hand, :score
|
||||
|
||||
def initialize(player_name)
|
||||
@hand = []
|
||||
@@ -67,12 +67,6 @@ class Player
|
||||
@hand << card
|
||||
end
|
||||
|
||||
def display_hand
|
||||
@hand.each do |card|
|
||||
card.display
|
||||
end
|
||||
end
|
||||
|
||||
def play
|
||||
@hand.pop
|
||||
end
|
||||
@@ -83,28 +77,59 @@ class Player
|
||||
end
|
||||
|
||||
class Game
|
||||
attr_reader :player1, :player2, :round_winner
|
||||
attr_reader :player1, :player2, :dealer, :non_dealer, :upcard, :trump_suit, :round_winner
|
||||
|
||||
def initialize(player_name1, player_name2)
|
||||
@deck = Deck.new
|
||||
@player1 = Player.new(player_name1)
|
||||
@player2 = Player.new(player_name2)
|
||||
@dealer = nil
|
||||
@non_dealer = nil
|
||||
@upcard = nil
|
||||
@trump_suit = nil
|
||||
@round_winner = nil
|
||||
end
|
||||
|
||||
def determine_dealer
|
||||
@deck.shuffle
|
||||
while @dealer.nil?
|
||||
card1 = @deck.cards[rand(2..30) -1]
|
||||
card2 = @deck.cards[rand(2..30) -1]
|
||||
if card1.strength > card2.strength
|
||||
@dealer = @player1
|
||||
@non_dealer = @player2
|
||||
elsif card2.strength > card1.strength
|
||||
@dealer = @player2
|
||||
@non_dealer = @player1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def change_dealer
|
||||
old_dealer = @dealer
|
||||
@dealer = @non_dealer
|
||||
@non_dealer = old_dealer
|
||||
end
|
||||
|
||||
def deal
|
||||
@deck.shuffle
|
||||
(1..16).each do
|
||||
@player1.receive(@deck.draw)
|
||||
@player2.receive(@deck.draw)
|
||||
5.times do
|
||||
@non_dealer.receive(@deck.draw)
|
||||
@dealer.receive(@deck.draw)
|
||||
end
|
||||
@upcard = @deck.draw
|
||||
@trump_suit = @upcard.suit
|
||||
end
|
||||
|
||||
def stock
|
||||
@deck.cards
|
||||
end
|
||||
|
||||
def play_round
|
||||
card1 = @player1.play
|
||||
card2 = @player2.play
|
||||
card1.display
|
||||
card2.display
|
||||
puts card1
|
||||
puts card2
|
||||
if card1.strength > card2.strength
|
||||
@round_winner = @player1
|
||||
elsif card1.strength < card2.strength
|
||||
@@ -119,7 +144,7 @@ class Game
|
||||
end
|
||||
|
||||
def play
|
||||
(1..16).each do
|
||||
5.times do
|
||||
play_round
|
||||
end
|
||||
end
|
||||
@@ -135,37 +160,30 @@ class Game
|
||||
end
|
||||
end
|
||||
|
||||
# Card
|
||||
###############################################################################
|
||||
# Tests
|
||||
|
||||
# card = Card.new("king", "hearts")
|
||||
# puts card.value
|
||||
# puts card.suit
|
||||
# card.display
|
||||
# puts card.strength
|
||||
|
||||
# Deck
|
||||
|
||||
# deck = Deck.new
|
||||
# deck.shuffle
|
||||
# card = deck.draw
|
||||
# card.display
|
||||
|
||||
# Game
|
||||
|
||||
game = Game.new("Bob", "Alice")
|
||||
# Instance du jeu
|
||||
game = Game.new("Alice", "Bob")
|
||||
game.determine_dealer
|
||||
puts "The dealer is #{game.dealer.player_name}."
|
||||
puts
|
||||
game.deal
|
||||
puts "Player 1 :"
|
||||
game.player1.display_hand
|
||||
puts "The stock has #{game.stock.length} cards."
|
||||
game.change_dealer
|
||||
puts "The dealer is #{game.dealer.player_name}."
|
||||
puts
|
||||
puts "Player 2 :"
|
||||
game.player2.display_hand
|
||||
puts
|
||||
game.play
|
||||
puts
|
||||
winner = game.game_winner
|
||||
if winner
|
||||
puts winner.player_name
|
||||
else
|
||||
puts "Nobody wins"
|
||||
end
|
||||
game.deal
|
||||
puts "The stock has #{game.stock.length} cards."
|
||||
# Mise en place du jeu
|
||||
# puts "#{game.player1.player_name} has :"
|
||||
# puts
|
||||
# puts "#{game.player2.player_name} has :"
|
||||
# puts game.player2.hand
|
||||
# puts
|
||||
# puts "Upcard is #{game.upcard} so the trump suit is #{game.trump_suit}."
|
||||
# puts
|
||||
# puts "The stock has #{game.stock.length} cards :"
|
||||
# puts
|
||||
# puts game.stock
|
||||
|
||||
Reference in new issue
Block a user