【问题标题】:2D array acting strange二维数组表现奇怪
【发布时间】:2014-04-19 13:57:09
【问题描述】:

我正在尝试用 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)

我希望结果是这样的:

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

但它显示的是:

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

我不知道为什么,非常感谢一些帮助。

【问题讨论】:

    标签: ruby arrays multidimensional-array


    【解决方案1】:

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

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

    代替

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2020-01-27
      相关资源
      最近更新 更多