Ajoute les commentaires et la documentation RDoc
This commit is contained in:
1 parent
5cf2d683e7
commit
dbd8c51412
56 files changed
+3601
-17
No files matched your search
+12
-2
@@ -2,6 +2,7 @@ require_relative "deck"
|
||||
require_relative "player"
|
||||
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
|
||||
@@ -18,6 +19,7 @@ class Game
|
||||
@ui = TerminalUI.new
|
||||
end
|
||||
|
||||
# Simule une coupe pour déterminer quel joueur sera le donneur.
|
||||
def determine_dealer
|
||||
@deck.shuffle
|
||||
|
||||
@@ -35,12 +37,14 @@ class Game
|
||||
end
|
||||
end
|
||||
|
||||
# Échange les rôles de donneur et de non-donneur.
|
||||
def change_dealer
|
||||
old_dealer = @dealer
|
||||
@dealer = @non_dealer
|
||||
@non_dealer = old_dealer
|
||||
end
|
||||
|
||||
# Distribue les cartes et pose la retourne.
|
||||
def deal
|
||||
@player1.clear_hand
|
||||
@player2.clear_hand
|
||||
@@ -56,10 +60,12 @@ class Game
|
||||
@trump_suit = @upcard.suit
|
||||
end
|
||||
|
||||
# Retourne les cartes restantes dans le talon.
|
||||
def stock
|
||||
@deck.cards
|
||||
end
|
||||
|
||||
# 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
|
||||
@@ -70,6 +76,7 @@ class Game
|
||||
end
|
||||
end
|
||||
|
||||
# Joue un pli.
|
||||
def play_trick(lead_player, follow_player)
|
||||
lead_card = @ui.choose_card(lead_player)
|
||||
follow_card = @ui.choose_card(follow_player)
|
||||
@@ -94,10 +101,12 @@ class Game
|
||||
@ui.display_trick_winner(@trick_winner)
|
||||
end
|
||||
|
||||
# Retourne l'autre joueur.
|
||||
def other_player(player)
|
||||
player == @player1 ? @player2 : @player1
|
||||
end
|
||||
|
||||
# Joue une partie.
|
||||
def play
|
||||
lead_player = @non_dealer
|
||||
follow_player = @dealer
|
||||
@@ -105,11 +114,12 @@ class Game
|
||||
5.times do
|
||||
play_trick(lead_player, follow_player)
|
||||
|
||||
lead_player = @trick_winner
|
||||
follow_player = other_player(lead_player)
|
||||
lead_player = @trick_winner
|
||||
follow_player = other_player(lead_player)
|
||||
end
|
||||
end
|
||||
|
||||
# Retourne le joueur ayant le meilleur score.
|
||||
def game_winner
|
||||
if @player1.score > @player2.score
|
||||
@player1
|
||||
|
||||
Reference in new issue
Block a user