2D阵列表现奇怪

时间:2014-04-19 13:57:10

标签: ruby arrays multidimensional-array

我正在尝试用Ruby制作生活游戏,到目前为止我已经有了这段代码:

class Board
  def initialize(size)
    @board = [["-"] * size] * size
    @board[2][2] = "#"
  end
  def to_s
    @board.map{|r| 
      r.map{|i| print (i ? i.to_s : " ") + " "}
      puts
    }
  end
end

puts Board.new(5)

我希望结果如下:

- - - - - 
- - - - - 
- - # - - 
- - - - - 
- - - - -

但相反它显示了这个:

- - # - - 
- - # - - 
- - # - - 
- - # - - 
- - # - -

我不知道为什么,我真的很感激一些帮助。

1 个答案:

答案 0 :(得分:1)

没关系,我找到了答案。我应该一直在使用

@board = Array.new(size) { Array.new(size, "-") }

而不是

@board = [["-"] * size] * size