class Tundengine::Stages::Round
Constants
- LAST_TRICK_BONUS_POINTS
Attributes
last_declaration[R]
players[R]
trump_suit[R]
Public Class Methods
new(match, players_in_round, trump_suit)
click to toggle source
Calls superclass method
Tundengine::Stages::Base::new
# File lib/tundengine/stages/round.rb, line 13 def initialize(match, players_in_round, trump_suit) @players = players_in_round @players.each { |p| p.round = self } @trump_suit = trump_suit.freeze @last_declaration = Declarations::Null.instance super(match) Dealer.instance.deal!(players, trump_suit) end
Public Instance Methods
after_declaring!(declaration)
click to toggle source
# File lib/tundengine/stages/round.rb, line 40 def after_declaring!(declaration) current_trick.after_declaring!(declaration) @last_declaration = declaration end
declare!(declaration = Declarations::Null.instance)
click to toggle source
# File lib/tundengine/stages/round.rb, line 26 def declare!(declaration = Declarations::Null.instance) last_winner_player.declare!(declaration) end
on_complete_child!()
click to toggle source
Calls superclass method
Tundengine::Stages::Base#on_complete_child!
# File lib/tundengine/stages/round.rb, line 30 def on_complete_child! # when the current trick is completed super rotate_players! end
on_completed!()
click to toggle source
# File lib/tundengine/stages/round.rb, line 35 def on_completed! last_winner_player.bonus_points = LAST_TRICK_BONUS_POINTS parent.on_complete_child!(result) end
summary()
click to toggle source
# File lib/tundengine/stages/round.rb, line 45 def summary { trump_suit: trump_suit.to_s, players: players.map(&:summary) } end
Protected Instance Methods
any_player()
click to toggle source
# File lib/tundengine/stages/round.rb, line 75 def any_player players.first end
completed?()
click to toggle source
# File lib/tundengine/stages/round.rb, line 71 def completed? any_player.has_empty_hand? or @last_declaration.finishes_round?(tute_value) end
last_trick()
click to toggle source
# File lib/tundengine/stages/round.rb, line 67 def last_trick tricks.last || :no_trick end
last_winner_player()
click to toggle source
# File lib/tundengine/stages/round.rb, line 62 def last_winner_player last_trick.winner_player end
Also aliased as: next_first_player
new_child()
click to toggle source
# File lib/tundengine/stages/round.rb, line 54 def new_child Trick.new(self) end
result()
click to toggle source
# File lib/tundengine/stages/round.rb, line 79 def result RoundAnalyzer.new(self).result end
rotate_players!()
click to toggle source
# File lib/tundengine/stages/round.rb, line 58 def rotate_players! players.rotate!(players.index next_first_player) end