2011-01-30 44 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

我沒有仔細查看你的代碼,以確保沒有其他問題,但是這肯定會打印錯誤的值。