Vérification des plis
This commit is contained in:
1 parent
b0fd3c100c
commit
ba399719a3
3 files changed
+18
-6
No files matched your search
+13
-5
@@ -5,7 +5,7 @@ require_relative "terminal_ui"
|
|||||||
# Gère le déroulement et les règles d'une partie d'Écarté.
|
# Gère le déroulement et les règles d'une partie d'Écarté.
|
||||||
class Game
|
class Game
|
||||||
attr_reader :player1, :player2, :dealer, :non_dealer,
|
attr_reader :player1, :player2, :dealer, :non_dealer,
|
||||||
:upcard, :trump_suit, :trick_winner
|
:upcard, :trump_suit, :trick_winner, :stock
|
||||||
|
|
||||||
def initialize(player_name1, player_name2)
|
def initialize(player_name1, player_name2)
|
||||||
@deck = Deck.new
|
@deck = Deck.new
|
||||||
@@ -67,14 +67,20 @@ class Game
|
|||||||
|
|
||||||
# Vérifie si le coup du second joueur respecte les règles.
|
# Vérifie si le coup du second joueur respecte les règles.
|
||||||
def valid_follow_card?(follow_player, lead_card, follow_card)
|
def valid_follow_card?(follow_player, lead_card, follow_card)
|
||||||
if follow_card.suit == lead_card.suit
|
if follow_player.hand.any? { |card| card.suit == lead_card.suit }
|
||||||
true
|
if follow_player.hand.any? { |card| card.suit == lead_card.suit && card.strength > lead_card.strength }
|
||||||
elsif follow_player.hand.any? { |card| card.suit == lead_card.suit }
|
follow_card.suit == lead_card.suit && follow_card.strength > lead_card.strength
|
||||||
false
|
else
|
||||||
|
follow_card.suit == lead_card.suit
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if follow_player.hand.any? { |card| card.suit == @trump_suit }
|
||||||
|
follow_card.suit == @trump_suit
|
||||||
else
|
else
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Joue un pli.
|
# Joue un pli.
|
||||||
def play_trick(lead_player, follow_player)
|
def play_trick(lead_player, follow_player)
|
||||||
@@ -111,6 +117,8 @@ class Game
|
|||||||
lead_player = @non_dealer
|
lead_player = @non_dealer
|
||||||
follow_player = @dealer
|
follow_player = @dealer
|
||||||
|
|
||||||
|
@ui.display_trump(@trump_suit)
|
||||||
|
|
||||||
5.times do
|
5.times do
|
||||||
play_trick(lead_player, follow_player)
|
play_trick(lead_player, follow_player)
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -18,6 +18,11 @@ class TerminalUI
|
|||||||
player.hand[choice - 1]
|
player.hand[choice - 1]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Affiche la couleur d'atout.
|
||||||
|
def display_trump(trump_suit)
|
||||||
|
puts "Trump suit: #{trump_suit}"
|
||||||
|
end
|
||||||
|
|
||||||
# Affiche un avertissement si le coup joué ne respecte pas les règles.
|
# Affiche un avertissement si le coup joué ne respecte pas les règles.
|
||||||
def display_wrong_card
|
def display_wrong_card
|
||||||
puts "You cannot play this card."
|
puts "You cannot play this card."
|
||||||
@@ -52,4 +57,3 @@ class TerminalUI
|
|||||||
puts
|
puts
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Reference in new issue
Block a user