저는 Comp Sci에 소개하는 Comp Sci 학생입니다. 지금 우리는 java를 사용하는 텍스트 기반 지뢰 찾기 게임 인 올해 프로젝트를 끝내고 있습니다. 첫 번째 부분에 대해서는 5x5 지뢰 찾기 보드를 2 차원 문자 배열로 표현하고 수동으로 폭탄 위치를 추가 한 다음 인접 폭탄을 나타내는 숫자를 업데이트한다고 가정합니다. 그러면 보드의 두 번째 표현을 만듭니다 세포가 드러났는지 여부.2D Char 배열 지뢰 찾기 게임 루프
인쇄 보드 (숯불 [] [] 보드, 부울 [] [] 공개됩니다) : 텍스트 형태의 화면하기 위해 지뢰 찾기 보드를 인쇄
은 그 후 우리는 다음과 같은 방법을 작성해야합니다. 프린트 된 보드는 이미 노출 된 세포를 반영해야합니다.
셀 표시 (int 행, int col, 부울 [] [] 게임 보드, char [] [] 응답 보드) : 셀을 공개 할 때 상태 배열을 적절하게 수정하면서 공개 방법 결정 지뢰밭 규칙에 따라 주변 빈 공간.
그런 다음 플레이어가 이겼는지 또는 잃어버린 지 확인하기 위해이 두 가지 방법을 통합 한 기본 게임 루프를 작성해야합니다.
난 이미 인쇄판과 공개 셀 방식을 사용 했으므로 테스트하기 위해 게임 보드와 게임 루프를 만들어야합니다.
java.lang 외부에서 클래스 또는 모듈을 사용하는 것은 소리가 아닙니다 (라이브러리를 가져 오지 마십시오).
공공 정적 무효 메인 (문자열 []에 args) {
char[][]answerboard= {{'B', '1', '0', '1', 'B'},
{'1', '1', '1', '2', '1'},
{'0', '1', 'B', '2', '1'},
{'1', '1', '1', '2', 'B'},
{'B', '1', '0', '1', '1'}};
// Initialized answer board: This is the board that shows what is inside each cell. I need to create a second 2d array representation that shows which cells have been revealed.
int row , col ;
for (row = 0; row < answerboard.length; row++){
for (col = 0; col < answerboard[1].length; col++)
System.out.print(answerboard[row][col]);
System.out.println();
}
}
public static void printBoard(char[][] board, boolean[][] isRevealed)
{
for(int i=0; i < board.length; i++)
{
for(int j=0; j<=board[0].length; j++)
{
if(isRevealed[i][j]=true)
System.out.print(board[i][j]+" ");//prints hidden char
else
if(isRevealed[i][j]= false)
System.out.print("- ");
}
System.out.println(" ");
}
}
public static void revealCell(int row, int col, boolean[][] gameboard, char[][]answersboard) {
System.out.println(row + " " + col);
if(row < 0|| row >=answersboard.length ||col < 0|| col > answersboard[0].length){
System.out.println("bad input");
return;
}
if(answersboard[row][col] == 'B'){
gameboard[row][col] = answersboard[row][col];
return;
}
if(answersboard[row][col] == '1'||answersboard[row][col] == '2'){
gameboard[row][col] = answersboard[row][col];
return;
}
if(answersboard[row][col] == '0'){
gameboard[row][col] = answersboard[row][col];
for(int i = row-1; i <= row +1; i++){
for(int j = col-1; j<= col +1;j++){
revealCell(i,j, gameboard, answersboard);
}
}
}
}
내가하려는 것은 내 첫 번째 보드, 두 번째 공개 된 표현 및 프린트 보드 및 공개 셀 방법을 사용자가 공개하고 확인할 셀의 좌표를 묻는 게임 루프에 통합하는 것입니다. 플레이어가 승리했는지 또는 잃어 버렸는 지 확인하십시오. 그러나 나는 그것을 알아낼 수 없다. – user2292794