Files
ecarte/lib/terminal_ui.rb
T
2026-10-09 20:26:46 +02:00

60 lines
1.3 KiB
Ruby

# Gère l'affichage et les saisies dans le terminal.
class TerminalUI
# Demande au joueur de choisir une carte et la retourne.
def choose_card(player)
player.hand.each_with_index do |card, index|
puts "#{index + 1}. #{card}"
end
print "Choose a card: "
choice = gets.chomp.to_i
until choice.between?(1, player.hand.length)
print "Invalid choice. Choose a card: "
choice = gets.chomp.to_i
end
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."
end
# Affiche le joueur ayant remporté le pli.
def display_trick_winner(player)
puts "#{player.name} wins the trick."
puts
end
# Affiche les informations de débogage.
def debug_game(game)
puts "Dealer: #{game.dealer.name}"
puts "Non-dealer: #{game.non_dealer.name}"
puts
puts "#{game.player1.name} has:"
puts game.player1.hand
puts
puts "#{game.player2.name} has:"
puts game.player2.hand
puts
puts "Upcard: #{game.upcard}"
puts "Trump suit: #{game.trump_suit}"
puts
puts "Stock:"
puts game.stock.length
puts
end
end