Add RuboCop and Helix project config

This commit is contained in:
julien committed 2026-10-10 14:30:45 +02:00
1 parent 5feefbcd54
commit 7b33d9a8ef
14 files changed
+28 -105

No files matched your search

+4 -5
View File
@@ -18,16 +18,15 @@ class Card
@value.to_i
else
case @value
when "ace"
when 'ace'
11
when "jack"
when 'jack'
12
when "queen"
when 'queen'
13
when "king"
when 'king'
14
end
end
end
end
+3 -4
View File
@@ -1,4 +1,4 @@
require_relative "card"
require_relative 'card'
# Représente un paquet de cartes et gère son contenu.
class Deck
@@ -6,8 +6,8 @@ class Deck
def initialize
@cards = []
values = ["7", "8", "9", "10", "ace", "jack", "queen", "king"]
suits = ["hearts", "diamonds", "clubs", "spades"]
values = %w[7 8 9 10 ace jack queen king]
suits = %w[hearts diamonds clubs spades]
suits.each do |suit|
values.each do |value|
@@ -26,4 +26,3 @@ class Deck
@cards.pop
end
end
+15 -21
View File
@@ -1,11 +1,11 @@
require_relative "deck"
require_relative "player"
require_relative "terminal_ui"
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, :stock
:upcard, :trump_suit, :trick_winner
def initialize(player_name1, player_name2)
@deck = Deck.new
@@ -24,8 +24,8 @@ class Game
@deck.shuffle
while @dealer.nil?
card1 = @deck.cards[rand(2..30) - 1]
card2 = @deck.cards[rand(2..30) - 1]
card1 = @deck.cards[rand(1..29)]
card2 = @deck.cards[rand(1..29)]
if card1.strength > card2.strength
@dealer = @player1
@@ -73,12 +73,10 @@ class Game
else
follow_card.suit == lead_card.suit
end
elsif follow_player.hand.any? { |card| card.suit == @trump_suit }
follow_card.suit == @trump_suit
else
if follow_player.hand.any? { |card| card.suit == @trump_suit }
follow_card.suit == @trump_suit
else
true
end
true
end
end
@@ -95,13 +93,12 @@ class Game
lead_player.play(lead_card)
follow_player.play(follow_card)
if lead_card.suit != follow_card.suit && follow_card.suit != @trump_suit
@trick_winner = lead_player
elsif lead_card.suit == follow_card.suit && lead_card.strength > follow_card.strength
@trick_winner = lead_player
else
@trick_winner = follow_player
end
@trick_winner = if (lead_card.suit != follow_card.suit && follow_card.suit != @trump_suit) ||
(lead_card.suit == follow_card.suit && lead_card.strength > follow_card.strength)
lead_player
else
follow_player
end
@trick_winner.add_point
@ui.display_trick_winner(@trick_winner)
@@ -133,9 +130,6 @@ class Game
@player1
elsif @player1.score < @player2.score
@player2
else
nil
end
end
end
-1
View File
@@ -28,4 +28,3 @@ class Player
@score += 1
end
end
+4 -5
View File
@@ -1,17 +1,16 @@
# 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: "
print 'Choose a card: '
choice = gets.chomp.to_i
until choice.between?(1, player.hand.length)
print "Invalid choice. Choose a card: "
print 'Invalid choice. Choose a card: '
choice = gets.chomp.to_i
end
@@ -25,7 +24,7 @@ class TerminalUI
# Affiche un avertissement si le coup joué ne respecte pas les règles.
def display_wrong_card
puts "You cannot play this card."
puts 'You cannot play this card.'
end
# Affiche le joueur ayant remporté le pli.
@@ -52,7 +51,7 @@ class TerminalUI
puts "Trump suit: #{game.trump_suit}"
puts
puts "Stock:"
puts 'Stock:'
puts game.stock.length
puts
end