diff --git a/lib/game.rb b/lib/game.rb index ef43595..bb98fee 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -60,10 +60,25 @@ class Game @deck.cards end + 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 + else + true + end + end + def play_trick(lead_player, follow_player) lead_card = @ui.choose_card(lead_player) follow_card = @ui.choose_card(follow_player) + until valid_follow_card?(follow_player, lead_card, follow_card) + @ui.display_wrong_card + follow_card = @ui.choose_card(follow_player) + end + lead_player.play(lead_card) follow_player.play(follow_card) diff --git a/lib/terminal_ui.rb b/lib/terminal_ui.rb index 369043d..3cdb4b6 100644 --- a/lib/terminal_ui.rb +++ b/lib/terminal_ui.rb @@ -10,6 +10,10 @@ class TerminalUI player.hand[choice - 1] end + def display_wrong_card + puts "You cannot play this card." + end + def display_trick_winner(player) puts "#{player.name} wins the trick." puts