2011-01-30 55 views
0

在我的测试:红宝石+ Rails3中:数组的问题很奇怪分配

@board.disp_s 
@board.state = [1,0,0,1,0,0,0,0,0] 
@board.disp_s 

相应的输出:

Layout: 
nilnilnil 
nilnilnil 
nilnilnil 

Layout: 
100 
100 
110 
现在

...我敢肯定我告诉它是

从我的模型
100 
100 
000 

代码:http://pastebin.com/2Mpu7tU7

我敢肯定,我的方法被测试调用都没有修改@board_layout ....所以我很困惑。

+0

这里最好包含所有代码而不是外部pastebin链接。 – 2011-01-30 03:05:05

+0

我做到了,导致代码是..大约70行 – NullVoxPopuli 2011-01-30 03:41:57

回答

3

disp_s方法不能正确计算索引。

def disp_s 
    puts "Layout:" 
    WIDTH.times do |row| 
     WIDTH.times do |col| 
     print @board_layout[col * row + col] 
     end 
     puts " " 
    end 

col * row + col可能应WIDTH * row + col

我没有仔细查看你的代码,以确保没有其他问题,但是这肯定会打印错误的值。