Add RuboCop and Helix project config
This commit is contained in:
1 parent
5feefbcd54
commit
7b33d9a8ef
14 files changed
+24
-101
No files matched your search
@@ -1,2 +0,0 @@
|
||||
AllCops:
|
||||
NewCops: enable
|
||||
@@ -1,5 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
group :development do
|
||||
gem "rubocop", require: false
|
||||
end
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -28,4 +28,3 @@ class Player
|
||||
@score += 1
|
||||
end
|
||||
end
|
||||
|
||||
+4
-5
@@ -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
|
||||
|
||||
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Reference in new issue
Block a user