2011-03-04 4 views
0

제목이 거의 알려지지 않았으므로 미로를 위해 편집자를 찾고 있습니다. 나는 미로 해결사를 만들기위한 임무를 가졌다. 나는 파일을 읽음으로써 이것을했다. 첫 번째 줄에는 행과 열 수가 있습니다. 그 후에 그것은 미로를 만드는 상징의 미로입니다. 나는 각 장소를 돌며 상징에 따라 거기에 있었던 것을 나타내는 숫자가있는 행렬을 만들었다.자바 동적 매트릭스

For Instance: 

11 25 
************************* 
* ***     ** 
** * ***** ***** **** 
** *** ********** **** 
** ****  *  **** 
**  ***** *****  ** 
** *** ***** ********* ** 
** *** ***** ********* ** 
** ** ***** ********* ** 
* ***   ***  ** 
***************** ***** 

1111111111111111111111111 
1001110000000000000000011 
1100010111110111110001111 
1101110011111111110001111 
1101111000000100000001111 
1100000111110111110000011 
1101110111110111111111011 
1101110111110111111111011 
1100110111110111111111011 
1001110000000001110000011 
1111111111111111100011111 

그것이 내 매트릭스입니다. 이제이 문제가 해결되어 문제가되지 않습니다. 하지만 난 행 수 및 열 개수를 요청할 수 있도록 크기를 사각형으로 그릴 수 있습니다. [행] [열]을 모두 0으로 크게 만들고, 화면에 맞추고, 행렬을 기반으로 그리드를 작성한 다음 그들은 행렬 [0] [0]에 대한 상자를 클릭하여 행렬을 1로 변경하고 행렬의 한 점을 나타내는 각 격자 상자에 하나씩 변경합니다.

그런 식으로 내가 미로를 만들고 프로그램에서 해결하도록하거나 그걸 저장할 수 있습니다. 나는 다음 행과 열의 개수에 따라가 클릭 한 위치는 내가 알고 있어야 그리드가있는 사각형을 ...... 그리는 어떻게, 문제가 있어요 어디 물론

이있다

도움이 될 것입니다.

편집 : 확인 주어진 행과 열을 기반으로 미로를 그립니다. 클릭 수를 감지하고이를 클릭하면 사각형이됩니다. 그러나 전체 매트릭스를 변경하지 않고 다시 전체를 다시 그립니다. 당신이 갖고있는 것 같다으로

답변

1

이미 당신은 new 연산자를 사용하여 특정 크기의 미로를 만들 수 밖으로 일 :

int[][] maze = new int[rows][cols]; 

난 당신이 사용하고있는 사용자 인터페이스 패키지 모른다, 그러나 대부분의 작업 동일한 줄을 따라 : 화면의 너비가 일정한 픽셀 수와 시작 및 끝 픽셀 좌표를 지정하여 선을 그립니다. 마찬가지로 사용자가 클릭하면 클릭 좌표가 픽셀 단위로 표시됩니다. 화면의 전체 너비와 높이를 사용하고 미로의 행과 열 수로 나누어 상자의 크기를 결정할 수 있습니다. 미로를 그리려면 그 치수를 사용하십시오. 클릭의 (x, y) 좌표를 픽셀 단위로 취하고 x를 상자 너비로 나누고 상자 높이로 y를 나눔으로써 클릭의 행과 열을 결정할 수도 있습니다 (미로 그리기를 시작한 위치를 조정 한 후, 픽셀 (0,0)이 아닌 경우).

+0

흠, 나는 그와 비슷한 것을 시도했지만 여전히 작동하지 않는다. 창 크기를 시작하려면 500,500으로 설정하고, 미로는 0,0부터 시작한 다음 열의 양과 아래쪽 행의 양으로 그립니다. 크기 windowWidth/columns 및 windowHieght/rows의 상자가있는 경우. – Tempus35

+0

왜 작동하지 않습니까? 상자 경계 너비를 고려하여 수식을 약간 조정해야 할 수도 있습니다. –