Skip to content

Instantly share code, notes, and snippets.

@100lp
Last active December 11, 2015 08:29
Show Gist options
  • Save 100lp/4573750 to your computer and use it in GitHub Desktop.
Save 100lp/4573750 to your computer and use it in GitHub Desktop.
Написать класс футболиста. У каждого футболиста должны быть: - Сила удара (рандомное число от 1 до 10) - Команда, за которую он играет - Любое кол-во ударов, но минимум 1 гол из 5-и - Каждый футболист должен считать: - общее кол-во своих ударов по воротам и - число забитых голов Урок второй: - сделать метод пасс - если сила удара 10, то вероятно…
class Footballist
attr_accessor :goals, :udars, :power, :success_passes, :fail_passes, :saved_goals, :failed_goals
@@attempts = 0
@@attempt_goals = 0
def initialize(team, power=nil)
@power = (power < 0 or power > 10) ? rand(10)+1 : power
@team = team
@goals = 0
@udars = 0
@success_passes = 0
@fail_passes = 0
@saved_goals = 0
@failed_goals = 0
end
def udar
@@attempts += 1
@udars += 1
udar = rand(5)+1
goal if udar == 3 or (@@attempts == 5 and @@attempt_goals == 0)
end
def pass
Array(1..@power).include?(rand(10)+1) ? @success_passes += 1 : @fail_passes += 1
end
def goalkeep
(Array(@power..9).include?(rand(10)+1) or @power == 1) ? @saved_goals += 1 : @failed_goals += 1
end
private
def goal
@@attempt_goals = 0
@goals += 1
@@attempts = 0
end
end
panda = Footballist.new 'barselona', 50
45.times do
panda.udar
panda.pass
panda.goalkeep
end
puts "power: " + panda.power.to_s
puts "goals: " + panda.goals.to_s
puts "udars: " + panda.udars.to_s
puts "success_passes: " + panda.success_passes.to_s
puts "fail_passes: " + panda.fail_passes.to_s
puts "saved_goals: " + panda.saved_goals.to_s
puts "failed_goals: " + panda.failed_goals.to_s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment