Я новичок в Ruby и работаю над упражнением, в котором спортивная команда (до 10 человек) должна иметь как минимум 2 мужчин и 2 женщины. Я создал класс Player, где определяется пол игрока и класс Team, где я добавляю этих игроков в массив переменных экземпляра @team (который создается при инициализации Team).Доступ к массиву переменных переменных с использованием IRB
Я разместил свой полный код в нижней части этого запроса.
Я надеюсь, что кто-то может помочь мне на следующее:
(1) Что я печатаю в IRB, чтобы иметь возможность конкретно вспомнить/maniuplate переменного массива экземпляра @team (который хранит все игрок). Я хочу позже перебрать массив или извлечь первый элемент в массиве (@ team.first не работает)
(2) У меня возникли трудности с написанием кода, чтобы определить, не менее двух мужчин и женщин находятся в переменной экземпляра @team. Лучший код, который я получил в классе Team, был следующим: но он сообщает, что @team - это nilclass.
def gender_balance
@team.select{|player| player.male == true }
end
Я исследовал интернет и пробовал различные комбинации для ответа - без успеха.
Непосредственно ниже приведены команды IRB, которые я набрал для создания и добавления игроков в команды. Ниже ниже мой код для Team (который содержит метод оценки, имеет ли он правильный гендерный микс) и Players.
irb(main):001:0> team = Team.new
=> #<Team:0x007fd8f21df858 @team=[]>
irb(main):002:0> p1 = Player.new
=> #<Player:0x007fd8f21d7b08 @male=true>
irb(main):003:0> p1.female_player
=> false
irb(main):004:0> p2 = Player.new
=> #<Player:0x007fd8f21bff58 @male=true>
irb(main):005:0> team.add_player(p1)
=> [#<Player:0x007fd8f21d7b08 @male=false>]
irb(main):006:0> team.add_player(p2)
=> [#<Player:0x007fd8f21d7b08 @male=false>, #<Player:0x007fd8f21bff58 @male=true>]
Эти две IRB линии я пытаюсь unsucessfully вспомнить содержание @team
irb(main):007:0> team
=> #<Team:0x007fd8f21df858 @team=[#<Player:0x007fd8f21d7b08 @male=false>, #<Player:0x007fd8f21bff58 @male=true>]>
irb(main):013:0> @team
=> nil
Код для обоих классов ниже:
class Player
def initialize
@male = true
end
def female_player
@male = false
end
def male_player
@male
end
end
class Team
def initialize
@team = []
end
def add_player player
@team << player
end
def player_count
@team.count
end
def valid_team?
player_number_check
gender_balance
end
private
def player_number_check
player_count > 6 && player_count < 11
end
def gender_balance
@team.select{|player| player.male == true }
end
end
Моя ссылка GitHub для этого кода есть: https://github.com/elinnet/object-calisthenics-beach-volleyball-edition.git
спасибо.