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
require_relative "../lib/game"
require_relative '../lib/game'
# Crée une partie.
game = Game.new("Alice", "Bob")
game = Game.new('Alice', 'Bob')
game.determine_dealer
game.deal
+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
+11 -17
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,14 +73,12 @@ class Game
else
follow_card.suit == lead_card.suit
end
else
if follow_player.hand.any? { |card| card.suit == @trump_suit }
elsif follow_player.hand.any? { |card| card.suit == @trump_suit }
follow_card.suit == @trump_suit
else
true
end
end
end
# Joue un pli.
def play_trick(lead_player, follow_player)
@@ -95,12 +93,11 @@ 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
@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
@trick_winner = follow_player
follow_player
end
@trick_winner.add_point
@@ -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
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.