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
+24 -101

No files matched your search

-2
View File
@@ -1,2 +0,0 @@
AllCops:
NewCops: enable
-5
View File
@@ -1,5 +0,0 @@
source "https://rubygems.org"
group :development do
gem "rubocop", require: false
end
-60
View File
@@ -1,60 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
ast (2.4.3)
json (3.0.2)
language_server-protocol (3.17.0.6)
lint_roller (1.1.0)
parallel (2.3.0)
parser (3.3.12.0)
ast (~> 2.4.1)
racc
prism (1.9.0)
racc (1.8.1)
rainbow (3.1.1)
regexp_parser (2.13.1)
rubocop (1.92.0)
json (>= 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (>= 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.11.3, < 3.0)
rubocop-ast (>= 1.49.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.50.0)
parser (>= 3.3.7.2)
prism (~> 1.7)
ruby-progressbar (1.13.0)
unicode-display_width (3.3.0)
unicode-emoji (~> 4.3)
unicode-emoji (4.3.0)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
rubocop
CHECKSUMS
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
json (3.0.2) sha256=8e6d7e7b11384c21230430cef90b71f14849a34a1f4452796670f7c981bd19df
language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
parallel (2.3.0) sha256=f75a3e904101ce6a1ccb6b8dc800cbafd42166d83330192438dcf29395167a6f
parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
regexp_parser (2.13.1) sha256=5aedb6b7c35688f51e86eef17a15374dfd287c83f4ca644b2c5f3ec50a33b44b
rubocop (1.92.0) sha256=2af68041fb2e70bd9321d0479b49fad07f8008a3d0758c83347b4917128c56e0
rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
unicode-display_width (3.3.0) sha256=4b7aa66a4b11db50f6f7e98411215cd0dd10eaecb665d36eec5bcacb3fa0b613
unicode-emoji (4.3.0) sha256=11c02fa73290378c066bb0562cd4c87d8e1b706fbbe0059ca12746a4244de8ce
BUNDLED WITH
4.0.20
+2 -2
View File
@@ -1,9 +1,9 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
require_relative "../lib/game" require_relative '../lib/game'
# Crée une partie. # Crée une partie.
game = Game.new("Alice", "Bob") game = Game.new('Alice', 'Bob')
game.determine_dealer game.determine_dealer
game.deal game.deal
+4 -5
View File
@@ -18,16 +18,15 @@ class Card
@value.to_i @value.to_i
else else
case @value case @value
when "ace" when 'ace'
11 11
when "jack" when 'jack'
12 12
when "queen" when 'queen'
13 13
when "king" when 'king'
14 14
end end
end end
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. # Représente un paquet de cartes et gère son contenu.
class Deck class Deck
@@ -6,8 +6,8 @@ class Deck
def initialize def initialize
@cards = [] @cards = []
values = ["7", "8", "9", "10", "ace", "jack", "queen", "king"] values = %w[7 8 9 10 ace jack queen king]
suits = ["hearts", "diamonds", "clubs", "spades"] suits = %w[hearts diamonds clubs spades]
suits.each do |suit| suits.each do |suit|
values.each do |value| values.each do |value|
@@ -26,4 +26,3 @@ class Deck
@cards.pop @cards.pop
end end
end end
+11 -17
View File
@@ -1,11 +1,11 @@
require_relative "deck" require_relative 'deck'
require_relative "player" require_relative 'player'
require_relative "terminal_ui" require_relative 'terminal_ui'
# Gère le déroulement et les règles d'une partie d'Écarté. # Gère le déroulement et les règles d'une partie d'Écarté.
class Game class Game
attr_reader :player1, :player2, :dealer, :non_dealer, attr_reader :player1, :player2, :dealer, :non_dealer,
:upcard, :trump_suit, :trick_winner, :stock :upcard, :trump_suit, :trick_winner
def initialize(player_name1, player_name2) def initialize(player_name1, player_name2)
@deck = Deck.new @deck = Deck.new
@@ -24,8 +24,8 @@ class Game
@deck.shuffle @deck.shuffle
while @dealer.nil? while @dealer.nil?
card1 = @deck.cards[rand(2..30) - 1] card1 = @deck.cards[rand(1..29)]
card2 = @deck.cards[rand(2..30) - 1] card2 = @deck.cards[rand(1..29)]
if card1.strength > card2.strength if card1.strength > card2.strength
@dealer = @player1 @dealer = @player1
@@ -73,14 +73,12 @@ class Game
else else
follow_card.suit == lead_card.suit follow_card.suit == lead_card.suit
end end
else elsif follow_player.hand.any? { |card| card.suit == @trump_suit }
if follow_player.hand.any? { |card| card.suit == @trump_suit }
follow_card.suit == @trump_suit follow_card.suit == @trump_suit
else else
true true
end end
end end
end
# Joue un pli. # Joue un pli.
def play_trick(lead_player, follow_player) def play_trick(lead_player, follow_player)
@@ -95,12 +93,11 @@ class Game
lead_player.play(lead_card) lead_player.play(lead_card)
follow_player.play(follow_card) follow_player.play(follow_card)
if lead_card.suit != follow_card.suit && follow_card.suit != @trump_suit @trick_winner = if (lead_card.suit != follow_card.suit && follow_card.suit != @trump_suit) ||
@trick_winner = lead_player (lead_card.suit == follow_card.suit && lead_card.strength > follow_card.strength)
elsif lead_card.suit == follow_card.suit && lead_card.strength > follow_card.strength lead_player
@trick_winner = lead_player
else else
@trick_winner = follow_player follow_player
end end
@trick_winner.add_point @trick_winner.add_point
@@ -133,9 +130,6 @@ class Game
@player1 @player1
elsif @player1.score < @player2.score elsif @player1.score < @player2.score
@player2 @player2
else
nil
end end
end end
end end
-1
View File
@@ -28,4 +28,3 @@ class Player
@score += 1 @score += 1
end end
end end
+4 -5
View File
@@ -1,17 +1,16 @@
# Gère l'affichage et les saisies dans le terminal. # Gère l'affichage et les saisies dans le terminal.
class TerminalUI class TerminalUI
# Demande au joueur de choisir une carte et la retourne. # Demande au joueur de choisir une carte et la retourne.
def choose_card(player) def choose_card(player)
player.hand.each_with_index do |card, index| player.hand.each_with_index do |card, index|
puts "#{index + 1}. #{card}" puts "#{index + 1}. #{card}"
end end
print "Choose a card: " print 'Choose a card: '
choice = gets.chomp.to_i choice = gets.chomp.to_i
until choice.between?(1, player.hand.length) until choice.between?(1, player.hand.length)
print "Invalid choice. Choose a card: " print 'Invalid choice. Choose a card: '
choice = gets.chomp.to_i choice = gets.chomp.to_i
end end
@@ -25,7 +24,7 @@ class TerminalUI
# Affiche un avertissement si le coup joué ne respecte pas les règles. # Affiche un avertissement si le coup joué ne respecte pas les règles.
def display_wrong_card def display_wrong_card
puts "You cannot play this card." puts 'You cannot play this card.'
end end
# Affiche le joueur ayant remporté le pli. # Affiche le joueur ayant remporté le pli.
@@ -52,7 +51,7 @@ class TerminalUI
puts "Trump suit: #{game.trump_suit}" puts "Trump suit: #{game.trump_suit}"
puts puts
puts "Stock:" puts 'Stock:'
puts game.stock.length puts game.stock.length
puts puts
end end
View File
Whitespace-only changes.
View File
Whitespace-only changes.
View File
Whitespace-only changes.
View File
Whitespace-only changes.
View File
Whitespace-only changes.