无法添加到循环内的数组

时间:2017-06-15 05:27:43

标签: arrays ruby loops

我正在做一件事来帮助我跟踪我的球员的d& d并且我遇到了障碍。相关的一段代码:

playercount = nil
playername = nil

playernamegroup = Array.new
playeracgroup = Array.new
playermaxhpgroup = Array.new
playercurrenthpgroup = Array.new


def party(n)
  return if n == 0
  party(n-1)

  player = {}
  puts "-What's player #{n}'s name?"
  playername = gets.chomp 
  playernamegroup <<  playername    
  puts "-What's their AC?"
  playerac = gets.chomp.to_i
  puts "-Got it. What's their max HP?"
  playermaxhp = gets.chomp.to_i
  $players[n] = player
  puts "-Okay."
end

还有一个循环向下运行派对块的次数,这里:

loop do
  puts "-How many players today?"  
  playercount = gets.chomp.to_i
    if 0 >= playercount
      puts "-You can't have no players in a party. That's not D&D, that's you having no friends."
      redo
   elsif 8 < playercount
     puts "-Hey now, that's a huge party. I can only handle eight players at once."
     redo
    elsif 8 >= playercount
      break     
   else 
     puts "-A number between 1 and 8, please."
     redo
   end
end

$players = [] 

party(playercount)

当我运行它时,我得到: 错误:未定义的方法`playernamegroup&#39; for main:Object

我已经尝试过洗牌并仍然得到同样的错误,我已经看过其他问题并且没有想到它。帮助

1 个答案:

答案 0 :(得分:2)

您需要在函数中声明数组

def party(n)
  playernamegroup = Array.new
  playeracgroup = Array.new
  playermaxhpgroup = Array.new
  playercurrenthpgroup = Array.new

  return if n == 0
  party(n-1)

  player = {}
  puts "-What's player #{n}'s name?"
  playername = gets.chomp 
  playernamegroup <<  playername    
  puts "-What's their AC?"
  playerac = gets.chomp.to_i
  puts "-Got it. What's their max HP?"
  playermaxhp = gets.chomp.to_i
  $players[n] = player
  puts "-Okay."
end