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

외부 붙여 넣기 링크가 아닌 여기에 모든 코드를 포함하는 것이 좋습니다. –

+0

내가 그랬어, 코드는 .. 약 70 줄 – NullVoxPopuli

답변

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해야한다.

다른 문제가 없는지 확인하기 위해 코드를 신중하게 검토하지는 않았지만 이는 잘못된 값을 분명히 인쇄합니다.

+0

롤 감사합니다. 어리석은 실수. 내가 너무 오랫동안 그것을 꼼짝 못하게하는 것 같아. – NullVoxPopuli