【发布时间】:2017-04-28 23:38:30
【问题描述】:
对于我们的任务,我们的目的是在任意大小的棋盘上创建井字游戏,并接受一个数组作为输入。我还没有完全掌握 attr_accessor 模块,而且我很确定我用错了。
class Board
attr_accessor :grid
def initialize(grid = nil)
if grid.nil?
@grid = Array.new(3, Array.new(3, nil))
else
@grid = grid
end
end
def place_mark(pos, mark)
@grid[pos[0]][pos[1]] = mark
end
end
我的主要问题是即使“place_mark”似乎应该将输入放在一个位置。我得到以下信息:
game.place_mark([0,0], :X) #=> [[:X, nil, nil], [:X, nil, nil], [:X, nil, nil]]
当我在课堂之外重新创建它时,它就像我认为的那样工作。我搞砸了什么?
【问题讨论】:
-
看到你的班级控制
@grid,你可以考虑改用attr_reader。
标签: ruby multidimensional-array class-instance-variables