From de4c374f33cb451ad728b11d8aaaba57dd735da3 Mon Sep 17 00:00:00 2001 From: julien Date: Tue, 6 Oct 2026 15:54:57 +0200 Subject: [PATCH] =?UTF-8?q?Commenc=C3=A9=20=C3=A0=20impl=C3=A9menter=20les?= =?UTF-8?q?=20plis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/game.rb | 25 ++++++++++++++++++------- lib/player.rb | 4 ++-- lib/terminal_ui.rb | 2 ++ main.rb | 9 +-------- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/lib/game.rb b/lib/game.rb index 407df9f..eb8f0da 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -60,12 +60,12 @@ class Game @deck.cards end - def play_trick - lead_card = @ui.choose_card(player1) - follow_card = @ui.choose_card(player2) + def play_trick(lead_player, follow_player) + lead_card = @ui.choose_card(lead_player) + follow_card = @ui.choose_card(follow_player) - player1.play - player2.play + lead_player.play(lead_card) + follow_player.play(follow_card) if lead_card.suit != follow_card.suit && follow_card.suit != @trump_suit @trick_winner = @player1 @@ -75,13 +75,24 @@ class Game @trick_winner = @player2 end - @trick_winner.add_point + @trick_winner.add_point + @ui.display_trick_winner(trick_winner) + end + + def other_player(player) + player == @player1 ? @player2 : @player1 end def play + lead_player = @non_dealer + follow_player = @dealer + 5.times do - play_round + play_trick(lead_player, follow_player) end + + lead_player = @trick_winner + follow_player = other_player(lead_player) end def game_winner diff --git a/lib/player.rb b/lib/player.rb index f565b1e..2bc4968 100644 --- a/lib/player.rb +++ b/lib/player.rb @@ -15,8 +15,8 @@ class Player @hand.clear end - def play - @hand.pop + def play(card) + @hand.delete(card) end def add_point diff --git a/lib/terminal_ui.rb b/lib/terminal_ui.rb index ee4585c..afbdd8b 100644 --- a/lib/terminal_ui.rb +++ b/lib/terminal_ui.rb @@ -2,6 +2,7 @@ class TerminalUI def choose_card(player) player.hand.each_with_index do |card, index| puts "#{index + 1}. #{card}" + puts end print "Choose a card: " @@ -12,6 +13,7 @@ class TerminalUI def display_trick_winner(player) puts "#{player.name} wins the trick." + puts end def debug_game(game) diff --git a/main.rb b/main.rb index 6f0627d..4714ee7 100644 --- a/main.rb +++ b/main.rb @@ -11,15 +11,8 @@ game.determine_dealer game.deal # Première manche -# Premier pli ui.debug_game(game) -game.play_trick -ui.display_trick_winner(game.trick_winner) - -# Second pli -ui.debug_game(game) -game.play_trick -ui.display_trick_winner(game.trick_winner) +game.play # Nouvelle manche # game.change_dealer