Вот код, который я использую в классе Game:
def play
puts "There are #{@players.length} players in #{@title}."
@players.each do |n|
puts n
end
@players.each do |o|
GameTurn.take_turn(o)
puts o
end
end
Он использует строку кода, которая ссылается на модуль под названием GameTurn. В GameTurn у меня есть метод self.take_turn
:
require_relative "die"
require_relative "Player"
module GameTurn
def self.take_turn(o)
die = Die.new
case die.roll
when 1..2
o.blam
puts "#{o.name} was blammed homie."
when 3..4
puts "#{o.name} was skipped."
else
o.w00t
end
end
end
Я немного смущен, почему мы используем «я» и разницу между открытыми методами и методами примесей в модулях. Я спросил это "методы экземпляров классов и методы модуля"
Является ли take_turn
открытым методом? Несмотря на то, что мы передаем в метод take_turn
объект из класса игрока, считается ли этот метод методом модуля, который мы используем напрямую? Разве это не считается методом миксина? Мы подаем в метод take_turn
объект из другого класса, так не смешивается ли он с другими классами?
Кроме того, я все еще пытаюсь понять, когда и почему мы используем термин «я»? Просто кажется странным, что нам нужно определить метод take_turn
в модуле GameTurn, используя термин «я». Кажется, это должно быть определено без «я», нет?