Ruby + Rails3:奇怪的数组问题分配

时间:2011-01-30 02:47:19

标签: ruby-on-rails ruby ruby-on-rails-3

在我的测试中:

@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 ....所以我很困惑。

1 个答案:

答案 0 :(得分: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

我没有仔细查看您的代码,以确保没有其他问题,但这肯定会打印不正确的值。