2014-05-21 3 views
0

저는 Java를 배우고 있으며 MineSweeper를 학습 경험으로 구현하려고합니다. 대부분의 로직이 작동하지만 재귀 checkMine() 메서드로 문제가 발생합니다. GridLayout이 2D 배열과 상호 작용하는 방식에 대한 나의 이해 또는 오해보다는 문제라고 생각합니다. JButton를 확장 객체입니다 - - 그리고 자신의 GridLayout과 위치에 배열의 각 요소를 할당 내가 할 수 있어야 무엇2DArray에서 Object로 Java의 GridLayout을 채우시겠습니까?

는 광산의 전체 2 차원 배열을 구축하는 것입니다. 현재 게임이 작동하지만 번호가 정확한 폭탄을 표시하지 못하고 있으며 디버깅 후 GridLayout을 사용하여 2D Array를 구현할 때 문제가 될 수 있다고 생각합니다.

질문 : 것이 가능한 2 차원 어레이의 개별 요소와 GridLayout과 채우기? 그렇지 않다면이 일을하는 가장 좋은 방법은 무엇입니까?

+0

확장합니다. GridLayout은 행과 열로 정의됩니다. 트릭은 광산 참조를 저장/액세스하는 방법입니다. –

+0

같은 물건을하는 동안 당신은 [모델 - 뷰 - 컨트롤러 (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) 패턴을 따라야합니다. 자세한 내용을 읽고 MVC 관점에서 문제에 접근하십시오. –

+0

숫자가 올바르게 표시되지 않거나 계산되지 * 않아서 잘못된 정보가 표시됩니까? 나중에 프로그램 논리와 GUI를 섞어서 사용하면 안됩니다. – DSquare

답변

0

당신의 클래스를 dAssuming하면 해당 문제가 될 왜 내가 볼 수없는 java.applet.Applet

// Columns, Rows 
Mines[][] mineGrid; 

// Add stuff to the `mineGrid` array 

// Set the height to the number of rows, length to number of columns 
setLayout(new GridLayout(mineGrid.length, mineGrid[0].length); 
// For each row 
for(int rowIndex = 0; rowIndex < mineGrid.length; rowIndex++) { 
    // For each column 
    for(int colIndex = 0; colIndex < mineGrid[0].length; colIndex++) { 
     // Add the button, because of GridLayout it starts @ the top row, goes across left to right, down a row, across left to right, etc. 
     add(mineGrid[rowIndex][colIndex]; 
    } 
} 
+1

한다 rowIndex에 제

+1

행렬이 혼란 스럽습니다. ^. ^ – DirkyJerky

관련 문제