3. 게임판 업데이트하기

워크숍 리소스

이전 단계에서는 사용자의 유효한 입력을 받아 게임판을 출력하는 프로그램을 만들었습니다. 하지만 게임판은 여전히 비어 있습니다. 이번 단계에서는 사용자의 입력을 받아 게임판을 업데이트하고, 컴퓨터의 랜덤한 움직임도 추가하는 방법을 배웁니다.

<<<~ 틱택토~>>
* 1번 - 9번을 선택하여 이동합니다
* 플레이어: 'X' 컴퓨터: 'O'

1 | 2 | 3
---+---+---
4 | 5 | 6
---+---+---
7 | 8 | 9
당신의 이동을 입력하세요 (1-9): 1
| |
---+---+---
| | <--------------------- 보드에 플레이어/컴퓨터 이동이 없습니다
---+---+---
| |
당신의 이동을 입력하세요 (1-9): d
잘못된 입력; 이동을 다시 입력합니다 (1-9): 3
| |
---+---+---
| | <--------------------- 보드에 플레이어/컴퓨터 이동이 없습니다
---+---+---
| |
당신의 이동을 입력하세요 (1-9):

사용자 움직임 표시하기

hasNextInt() 조건문 안에서, printBoard(board) 메서드를 호출하기 전에 사용자가 입력한 값을 기반으로 board 배열을 업데이트합니다.

플레이어는 게임판에서 **“X”**로 표시된다는 점에 유의하세요.

알림

Java는 0부터 시작하는 인덱싱(0-indexing)을 사용합니다. 하지만 플레이어는 1부터 9까지의 숫자를 입력하도록 요청받았습니다. 배열의 요소에 접근하려면 인덱스 표기법을 사용해야 합니다: myVariable[indexNumber].

컴퓨터의 움직임 설정하기

컴퓨터가 유효한 위치에 말을 놓는 동작을 구현하기 위해 **getComputerMove(String[] curBoard)**라는 새로운 메서드를 만들어봅시다.

이 메서드는 1에서 9까지의 유효한 위치 중 하나를 선택하여 컴퓨터의 말을 놓습니다. 다음 단계에서 이 메서드를 구현하는 방법을 설명합니다.

컴퓨터의 움직임 구현하기

getComputerMove() 메서드 안에서 1에서 9까지의 숫자를 랜덤으로 생성합니다. 이를 위해 자바에서 자주 사용되는 Random 클래스를 사용할 것입니다. 이 클래스를 사용하려면 파일 상단에 다음과 같은 코드를 작성하여 Random 클래스를. 임포트(import)합니다.

import java.util.Random;

생성자를 Random()이라고 불러 Random 객체를 만듭니다.

Random rand = new Random();

랜덤 숫자 생성

생성한 Random 객체에서 int nextInt(int num) 메서드를 호출하여 1부터 9까지의 숫자를 무작위로 생성할 수 있습니다.

int nextInt(int num) 메서드는 0부터 num-1까지의 랜덤 숫자를 반환합니다. 따라서 1부터 9까지의 숫자를 얻으려면 반환값에 1을 더해야 합니다.

int position = rand.nextInt(9);

유효한 움직임 확인

랜덤하게 1부터 9 사이의 숫자를 생성한 후, 해당 위치가 사용 가능한지 확인해야 합니다.

만약 이미 사용 중인 위치라면, while 루프를 사용해 유효한 움직임이 나올 때까지 새로운 랜덤 숫자를 계속 생성합니다.

이 과정이 끝나면 컴퓨터의 유효한 위치가 결정됩니다. 그 위치를 반환합니다

while (!curBoard[position].equals(" ")){
   position = rand.nextInt(9);
}
return position;

게임판 배열 업데이트하기

1단계와 마찬가지로 ‘printBoard(보드)‘라는 메서드를 사용하기 전에 컴퓨터의 board 배열을 업데이트해야 합니다.

무작위로 ‘getComputerMove()‘를 호출하여 이동을 생성합니다!

컴퓨터는 게임 보드에서 ‘O’로 표시된다는 점에 유의하세요.

board[getComputerMove(board)] = "O"; //getComputerMove returns the integer 0-8 that is the proper position in the array
printBoard(board);

Run the Program

지금 프로그램을 ‘실행’(Run) 하세요! 보드는 아래와 같이 각 입력으로 플레이어와 컴퓨터의 움직임을 올바르게 업데이트해야 합니다:

<<<~ 틱택토~>>
* 1번 - 9번을 선택하여 이동합니다
* 플레이어: 'X' 컴퓨터: 'O'

1 | 2 | 3
---+---+---
4 | 5 | 6
---+---+---
7 | 8 | 9
당신의 이동을 입력하세요 (1-9): 1
X | |
---+---+---
| |
---+---+---
| O |
당신의 이동을 입력하세요 (1-9): 1
잘못된 위치; 이동을 다시 입력하세요 (1-9): 2
X | X |
---+---+---
| | O
---+---+---
| O |
당신의 이동을 입력하세요 (1-9):

모든 것이 잘 작동하는 것 같습니다! 게임의 승자와 패자만 결정하면 다음 활동에서 구현할 수 있습니다!