2013-10-23 2 views
1

현재 저는 작은 프로젝트를 진행하고 있습니다. 나는 L 게임을위한 간단한 자바 프로그램을 작성하고있다. 배열 4x4의 내용을 이동할 메서드를 작성해야합니다. 이 방법은 (row, column) 개의 매개 변수를 사용합니다. 그에 따라 내용이 이동합니다.Java : 다차원 배열의 내용을 이동하는 방법은 무엇입니까?

{ 'x',' ',' ',' ' }, 

{ 'x',' ',' ',' ' }, 

{ 'x','x',' ',' ' }, 

{ ' ',' ',' ',' ' } 

이동 (0, 2) --->

{ ' ',' ','x',' ' }, 

{ ' ',' ','x',' ' }, 

{ ' ',' ','x','x' }, 

{ ' ',' ',' ',' ' } 

나는 어디서부터 시작 모르겠어요. 나는 이것에 주어진 어떤 도움에 정말로 감사한다. 도움을 주셔서 대단히 감사합니다.

+3

표준 1D 배열에 대해 이렇게 시작하십시오. 여기에서 간단합니다. 2D 배열의 각 1D 배열을 반복하면됩니다. –

+0

'(0, 2)'에 대한 예상 결과가 분명히 그렇게 될 것입니다! – SudoRahul

+0

새로운 2 차원 배열을 만들려면 (행, 열) 매개 변수에 해당하는 오프셋을 사용하여 첫 번째 배열의 데이터를 입력합니다. 무언가를 시도하고 벽에 부딪쳤다면 저희에게 알려주십시오. –

답변

1

당신의 방법이 단 하나의 x 줄에, 귀하의 경우, 일부 라인이이있는가이다 고려하고이

char[][] array = new char[4][4]; 

public static void move(row, column){ 
    for (int i = 0, i < 4; i++) { 
     for (int j = 0; j < 4; j++){ 
      if (array[i][j] != null) { 
       // add rows and column accordingly 
       array[i + row][j + column] = array[i][j]; 
       array[i][j] = null; 
      } 
     } 
    } 
} 

처럼 보일 것이다. 내가 그걸 알아낼 수있게 할께.

+0

다른 사용자는 동일한 질문을 자신의 "과제"(아마도 숙제)라고 부른 것에 대해 질문했습니다. 그들이 더 이상의 도움을 요청하면 코드를 보류하고 싶을 수도 있습니다. http://stackoverflow.com/questions/19532403/copying-a-2d-non-space-array-to-another – alexroussos

+0

그는 질문을 삭제했습니다. 나는 아직도 내가 원하는 정확한 대답을 가지고 있지 않다. 네가 도울 수있는 기회라도있어? – user2741226

+0

도움이 필요한가요? 또한 게시물 하단에 코드를 넣으십시오. 그리고 문제가 발생한 곳을 정확히 설명하십시오. –

1
int moverow = 0; 
    int moveCol = 2; 

    for(int i = 0; i <=3; i++){ 
     for(int j = 0; j <=3; j++){ 
      int currentValue = board[i][j]; 
      //shifting value 
      int shiftX = i + moverow; 
      int shiftY = j + moveCol; 
      // discarding the value if index overflows 
      if(shiftX > 3 || shiftY > 3){ 

       // setting initial value on the original index. 
       board[i][j] = 0; 
       break; 
      }else{ 
       board[shiftX][shiftY] = currentValue; 
       // setting initial value on the original index. 
       board[i][j] = 0; 
      } 
     } 
    } 
관련 문제