비디오: Week 0 2024
이 과제에서 자바 프로그래밍 클래스를 추가하여 Tic-Tac-Toe 게임을 개선합니다.이 프로그램을 사용하면 컴퓨터의 전략을 결정할 때 전략에 대한 기본적인 노력을 할 수 있습니다 움직입니다.
Java Programming Challenge: 간단한 Tic-Tac-Toe 게임에서는 Tic-Tac-Toe의 간단한 게임을하기위한 프로그램을 작성해야합니다. 이 과제에서 컴퓨터가 전략을 세울 수 있도록 이전 솔루션의 소스 코드를 수정합니다.
게임의 규칙은 매우 간단하지만 게임을 할 수있는 컴퓨터 프로그램을 만드는 것은 복잡 할 수 있습니다. 잠재적으로 복잡한 세부 사항을 프로그램에 통합해야합니다. 구체적으로:
-
프로그램에는 Tic-Tac-Toe 보드를 구성하는 9 개의 사각형 각각의 상태를 내부적으로 표현할 수있는 방법이 있어야합니다.
-
프로그램은 어느 플레이어에 대해서도 이동을 등록 할 수있는 방법을 제공해야하며, 각 이동이 유효한지 확인해야합니다 (예를 들어, 플레이어는 이미 X 또는 O로 점유 된 사각형에서 재생할 수 없습니다.
-
가능한 한 3 가지 행 조합 중 8 가지를 모두 조사하여 어느 한 플레이어가 승리했는지 결정할 수 있어야합니다: 3 행, 3 행, 그리고 두 개의 대각선을 포함한다.
-
게임은 무승부를 결정할 수 있어야한다. 즉, 9 개의 모든 사각형이 플레이되고 두 플레이어가이긴 적이 없다.
동시에, 프로그램 사용자가 자신의 움직임을 입력하고, 컴퓨터의 발표를 발표하고, 각 경기 후에 보드의 업데이트 된 표현을 표시하고, 게임이 끝났을 때 승자를 선언하거나 추첨을 발표하도록 요구함으로써 사용자와 상호 작용하는 세부 사항을 관리해야합니다
이 과제에서 Tic-Tac-Toe 프로그램의 두 요소를 분리하라는 요청을받습니다. 게임의 상태와 진행을 관리하는 전자 프로그램과 사용자와의 상호 작용을 처리하는 프로그램의 일부입니다. 완전한 게임을하기 위해 호출 할 수있는 메소드를 제공하는 TicTacToeBoard라는 클래스를 작성하면됩니다. 그런 다음 TicTacToeBoard 클래스를 사용하는 프로그램을 작성하여 사람이 컴퓨터에 대해 Tic-Tac-Toe 게임을 할 수있게합니다.
이 프로그램은 사용자의 관점에서 간단한 Tic-Tac-Toe 게임 과제를 해결하기 위해 만든 프로그램과 동일하게 작동합니다.이 버전의 게임의 경우 프로그램은 게임을 결정할 때 컴퓨터의 움직임.컴퓨터가 완벽하게 재생되지 않아 여전히 쉽게 상상할 수 있습니다. 그러나 처음 보는 빈 칸에서 단순히 노는 것 이상의 노력을합니다.
다음 표는 TicTacToeBoard 클래스가 구현해야하는 메소드를 나열합니다. 두 가지를 만들어야한다는 것을 기억하십시오. 이 문제를 해결하기위한 Java 파일. 첫 번째, TicTacToeBoard. java, TicTacToeBoard 클래스를 구현합니다. 두 번째는 간단히 TicTacToe입니다. java는 사용자가 컴퓨터에 대해 Tic-Tac-Toe 게임을 실행하기 위해 실행할 프로그램입니다.
생성자 | 설명 |
---|---|
TicTacToeBoard | 모든 사각형이 비어있는 새 TicTacToeBoard를 생성합니다. |
메서드 | 설명 |
void reset () | 각 사각형의 상태를 비어있게 재설정합니다. |
int getSquare (String square) | square로 지정된 사각형의 상태를 반환합니다.이 상태는 A1, A2, A3, B1, B2, B3, C1, C2 또는 C3 문자열 중 하나 여야합니다. 하늘의 경우는 0을 돌려 주어, 하늘의 경우는 X를, 하늘의 경우는 2를 돌려 준다. IllegalArgumentException - square가 허용되지 않는 값의 경우. |
void playAt (String square, int player) | 지정된 플레이어에 대해 지정된 사각형 (A1, A2, A3, B1, B2, B3, C1, C2 또는 C3)을 표시합니다 (X는 1, 영형). IllegalArgumentException - square가 허용되는 값 중 하나가 아니거나 player가 1 또는 2가 아니거나 지정된 사각형이 비어 있지 않은 경우 |
int isGameOver () | 게임 종료 여부를 결정합니다. 게임이 끝나지 않으면 0을 반환하고, X가 게임에서 승리하면 1을, O가 게임에서 승리하면 2를, 게임이 추첨이면 3을 반환합니다. 게임 종료 조건은 다음과 같습니다.
1: 행, 열 또는 대각선에 모든 X가 포함되어있는 경우. 2: 모든 행, 열 또는 대각선에 모든 Os가 들어있는 경우. 3: 빈 사각형이없고 X 나 O가 없다면. int getNextMove () |
컴퓨터 상대방의 다음 이동을 나타내는 정수를 반환합니다. 이 방법은 다음 전략에 따라 좋은 이동을 선택하기위한 기본적인 노력을해야합니다. | * 가운데 (정사각형 B2)가 비어 있으면 가운데 사각형을 연주합니다.
* 가운데가 비어 있지 않고 네 모서리 (사각형 A1, A3, C1 또는 C3) 중 하나가 비어 있으면 모서리 중 하나를 연주합니다 (어느 것이 든 상관 없습니다). * 가운데가 비어 있지 않고 모서리가 비어 있지 않은 경우 가장자리 중 하나 (사각형 A2, B1, B3 또는 C2)를 재생하십시오. String toString () |
보드의 현재 상태를 나타내는 문자열을 반환합니다. 이 문자열에는 행을 표시하는 개행 문자와 별도의 콘솔 행에 분리 기호 행이 포함됩니다 (예: | O | | O
- | - | - | X | - | - | - | X | 문제가 발생하면 |
인형 용 Java All-in-One, 4th Edition 제품 페이지의 다운로드 탭에서 해당 솔루션을 찾을 수 있습니다. 행운을 빌어 요!