我正在尝试创建一个简单的 10x10 数组,以便创建康威的生命游戏,但我遇到了一些奇怪的行为。首先我初始化电路板:
@board = Array.new(10, Array.new(10))
(0..9).each do |row|
(0..9).each do |column|
@board[row][column] = rand(0..1)
end
end
产生这个:
1000000111
1000000111
1000000111
1000000111
1000000111
1000000111
1000000111
1000000111
1000000111
1000000111
1000000111
看起来很可疑,但这完全有可能是随机生成的。当我尝试设置单个单元格的值时,真正的问题就开始了。当我更改值时,它将整个列设置为该值!例如,假设我更改了第一个单元格的值:
@board[0][0] = 0
我得到的是:
0000000111
0000000111
0000000111
0000000111
0000000111
0000000111
0000000111
0000000111
0000000111
0000000111
0000000111
是什么赋予了?为什么第 0 列中所有单元格的值会发生变化,而不仅仅是 0、0 处的单元格?