From ba399719a313cdc7b6d508465b2b234df19512d4 Mon Sep 17 00:00:00 2001 From: julien Date: Fri, 9 Oct 2026 20:26:46 +0200 Subject: [PATCH] =?UTF-8?q?V=C3=A9rification=20des=20plis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/game.rb | 20 ++++++++++++++------ lib/terminal_ui.rb | 6 +++++- tmp.rb | 0 3 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 tmp.rb diff --git a/lib/game.rb b/lib/game.rb index 556372b..7a8280f 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -5,7 +5,7 @@ require_relative "terminal_ui" # Gère le déroulement et les règles d'une partie d'Écarté. class Game attr_reader :player1, :player2, :dealer, :non_dealer, - :upcard, :trump_suit, :trick_winner + :upcard, :trump_suit, :trick_winner, :stock def initialize(player_name1, player_name2) @deck = Deck.new @@ -67,12 +67,18 @@ class Game # Vérifie si le coup du second joueur respecte les règles. def valid_follow_card?(follow_player, lead_card, follow_card) - if follow_card.suit == lead_card.suit - true - elsif follow_player.hand.any? { |card| card.suit == lead_card.suit } - false + if follow_player.hand.any? { |card| card.suit == lead_card.suit } + if follow_player.hand.any? { |card| card.suit == lead_card.suit && card.strength > lead_card.strength } + follow_card.suit == lead_card.suit && follow_card.strength > lead_card.strength + else + follow_card.suit == lead_card.suit + end else - true + if follow_player.hand.any? { |card| card.suit == @trump_suit } + follow_card.suit == @trump_suit + else + true + end end end @@ -111,6 +117,8 @@ class Game lead_player = @non_dealer follow_player = @dealer + @ui.display_trump(@trump_suit) + 5.times do play_trick(lead_player, follow_player) diff --git a/lib/terminal_ui.rb b/lib/terminal_ui.rb index e621a4f..469b543 100644 --- a/lib/terminal_ui.rb +++ b/lib/terminal_ui.rb @@ -18,6 +18,11 @@ class TerminalUI player.hand[choice - 1] 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. def display_wrong_card puts "You cannot play this card." @@ -52,4 +57,3 @@ class TerminalUI puts end end - diff --git a/tmp.rb b/tmp.rb new file mode 100644 index 0000000..e69de29