我正在做一件事来帮助我跟踪我的球员的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
我已经尝试过洗牌并仍然得到同样的错误,我已经看过其他问题并且没有想到它。帮助
答案 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