作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我写了一个 tictactoe 程序,我试图将它组织成类。
class Board
attr_accessor :fields
def initialize
self.fields = {
'1' => ' ', '2' => ' ', '3' => ' ',
'4' => ' ', '5' => ' ', '6' => ' ',
'7' => ' ', '8' => ' ', '9' => ' '
}
end
def set_stone_at(position, stone)
fields[position] = stone
end
def stone_at(position)
stone = fields[position]
puts stone
end
def show
puts fields
end
end
class Game
attr_accessor :board
def initialize
self.board = Board.new
end
def print_board
puts "\n #{fields['1']} | #{fields['2']} | #{fields['3']}"
puts " --*---*---"
puts " #{fields['4']} | #{fields['5']} | #{fields['6']}"
puts " --*---*---"
puts " #{fields['7']} | #{fields['8']} | #{fields['9']} \n"
end
end
board = Board.new
board.show
Game.new.board.show
game = Game.new
game.board.set_stone_at('1', 'X')
game.board.set_stone_at('2', 'O')
game.print_board
我无法从类 Game
中的类 Board
访问变量 fields
。我收到错误:
in `print_board': undefined local variable or method `fields' for #<Game:0x007ffc1a895710> (NameError)
我将不胜感激任何形式的帮助。我很感激任何帮助和解释。
最佳答案
写 board.fields
而不是 fields
。
顺便说一句,你没有变量fields
;您在类 Board
上有一个实例方法 fields
,它引用变量 @fields
。
关于ruby - 将程序拆分为类并从一个类访问另一个类中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34380764/
我是一名优秀的程序员,十分优秀!