Skip to content

Instantly share code, notes, and snippets.

@mikalai-yankouski
Last active November 27, 2018 17:11
Show Gist options
  • Save mikalai-yankouski/256666c9fb9b7bb7273c67e82ccaf61c to your computer and use it in GitHub Desktop.
Save mikalai-yankouski/256666c9fb9b7bb7273c67e82ccaf61c to your computer and use it in GitHub Desktop.
В парадигме ООП: В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20 игр, в другом - количество пропущенных мячей в этой же игре. Для каждой игры определите словесный результат игры (выигрыш, проигрыш или ничью)
# Задача №1
# В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20 игр,
# в другом - количество пропущенных мячей в этой же игре.
# Для каждой игры определите словесный результат игры (выигрыш, проигрыш или ничью)
class Game
attr_accessor :scored, :missed, :result
def match_result
@result = case @scored <=> @missed
when 1 then 'Win'
when 0 then 'Draw'
when -1 then 'Lose'
end
end
end
p goals_scored = Array.new(20) { rand(0..5) }
p goals_missed = Array.new(20) { rand(0..5) }
goals_scored.size.times do |i|
Game.new.tap do |game|
game.scored = goals_scored[i]
game.missed = goals_missed[i]
p game.match_result
end
end
@mikalai-yankouski
Copy link
Author

Еще вопрос: как назвать класс, который содержит СЧЕТ - это что за вещь?

Game

@mikalai-yankouski
Copy link
Author

Не хорошо объединять код который вычисляет значения и код вывода на экран:
Как бы ты разбил?

      result = @goals_scored[i] - @goals_missed[i]
      if result.positive?
        puts "Win with the score #{@goals_scored[i]}:#{@goals_missed[i]}"
      elsif result.negative?
        puts "Loss with the score #{@goals_scored[i]}:#{@goals_missed[i]}"
      else
        puts "Tie draw #{@goals_scored[i]}:#{@goals_missed[i]}"
      end

добавить метод для вычисления результата

@aya-soft
Copy link

aya-soft commented Nov 27, 2018

Ну так ты не разделил:

  def print_results
    @result.each do |score|
      if score.positive?
        puts "Win"
      elsif score.negative?
        puts "Lose"
      else
        puts "Tie draw"
      end
    end
  end

тут одновременно идет определение выиграл/проиграл/ничья и тут же мы печатаем

@aya-soft
Copy link

И счет содержит одна игра, а не все вместе

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment