0
这是我用于Naughts and Crosses(tic-tac-toe)游戏的代码的一部分。Ruby:未定义的局部变量(NameError) - 但它被定义为
positions = [" ", " ", " ", " ", " ", " ", " ", " ", " "]
# Returns .. 1 = Square already owned, 2 = Blank square, 0 = Enemy square
def check_square(side, square)
if positions[square] == side
state = 1
elsif positions[square] == B
state = 2
else
state = 0
end
return state
end
当我运行程序出现错误:
in `check_square': undefined local variable or method `positions' for main:Object (NameError)
但是它的字面定义的正上方。我已经在自己的.rb中运行了代码片段,它工作正常,所以我不明白为什么它不起作用。我必须假设它与职位的范围有关,但至少对我来说(初学者程序员),我不明白为什么它不能在这里工作,但在自己的程序中。
任何帮助很乐意欣赏。
谢谢,我已将它设置为全局变量,现在它似乎工作! –
但是,在面向对象编程中不推荐使用全局变量。 – sawa
你会推荐我用什么来代替? –