Files
2026-10-15 18:50:04 +02:00

68 lines
1.2 KiB
Ruby

# Défi : joueur et score
#
# Complète la classe `Player`.
#
# Règles :
# - un joueur possède un nom et un score ;
# - le score commence à 0 ;
# - `add_points(points)` ajoute des points ;
# - seuls les entiers strictement positifs sont acceptés ;
# - une valeur invalide ne doit pas modifier le score ;
# - `winner?` retourne true si le score est supérieur ou égal à 5 ;
# - `reset_score` remet le score à 0.
#
# Le nom doit être accessible en lecture mais pas modifiable directement.
# Le score doit être accessible en lecture mais pas modifiable directement.
class Player
attr_reader :name, :score
def initialize(name)
@name = name
@score = 0
end
def add_points(points)
if points.is_a?(Integer) && points.positive?
@score += points
end
end
def winner?
@score >= 5
end
def reset_score
@score = 0
end
end
player = Player.new("Alice")
# Résultats attendus :
#
puts player.name
# => "Alice"
#
puts player.score
# => 0
#
player.add_points(2)
puts player.score
# => 2
#
player.add_points(-1)
puts player.score
# => 2
#
puts player.winner?
# => false
#
player.add_points(3)
puts player.winner?
# => true
#
player.reset_score
puts player.score
# => 0