Séparé les classes dans des fichiers
This commit is contained in:
1 parent
df544cdd49
commit
8a1e56e85e
7 files changed
+212
-202
No files matched your search
+90
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
class Game
|
||||
attr_reader :player1, :player2, :dealer, :non_dealer, :upcard, :trump_suit, :round_winner
|
||||
|
||||
def initialize(player_name1, player_name2)
|
||||
@deck = Deck.new
|
||||
@player1 = Player.new(player_name1)
|
||||
@player2 = Player.new(player_name2)
|
||||
@dealer = nil
|
||||
@non_dealer = nil
|
||||
@upcard = nil
|
||||
@trump_suit = nil
|
||||
@round_winner = nil
|
||||
end
|
||||
|
||||
def determine_dealer
|
||||
@deck.shuffle
|
||||
while @dealer.nil?
|
||||
card1 = @deck.cards[rand(2..30) -1]
|
||||
card2 = @deck.cards[rand(2..30) -1]
|
||||
if card1.strength > card2.strength
|
||||
@dealer = @player1
|
||||
@non_dealer = @player2
|
||||
elsif card2.strength > card1.strength
|
||||
@dealer = @player2
|
||||
@non_dealer = @player1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def change_dealer
|
||||
old_dealer = @dealer
|
||||
@dealer = @non_dealer
|
||||
@non_dealer = old_dealer
|
||||
end
|
||||
|
||||
def deal
|
||||
@player1.clear_hand
|
||||
@player2.clear_hand
|
||||
|
||||
@deck = Deck.new
|
||||
@deck.shuffle
|
||||
5.times do
|
||||
@non_dealer.receive(@deck.draw)
|
||||
@dealer.receive(@deck.draw)
|
||||
end
|
||||
@upcard = @deck.draw
|
||||
@trump_suit = @upcard.suit
|
||||
end
|
||||
|
||||
def stock
|
||||
@deck.cards
|
||||
end
|
||||
|
||||
def play_round
|
||||
card1 = @player1.play
|
||||
card2 = @player2.play
|
||||
puts card1
|
||||
puts card2
|
||||
if card1.strength > card2.strength
|
||||
@round_winner = @player1
|
||||
elsif card1.strength < card2.strength
|
||||
@round_winner = @player2
|
||||
else
|
||||
@round_winner = nil
|
||||
end
|
||||
|
||||
if @round_winner
|
||||
@round_winner.add_point
|
||||
end
|
||||
end
|
||||
|
||||
def play
|
||||
5.times do
|
||||
play_round
|
||||
end
|
||||
end
|
||||
|
||||
def game_winner
|
||||
if @player1.score > @player2.score
|
||||
@player1
|
||||
elsif @player1.score < @player2.score
|
||||
@player2
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in new issue
Block a user