개인 재정 자바 프로그래밍 과제 : 간단한 Tic-Tac-Toe 프로그램에 수업 추가하기

자바 프로그래밍 과제 : 간단한 Tic-Tac-Toe 프로그램에 수업 추가하기

비디오: Week 0 2025

비디오: Week 0 2025
Anonim

이 과제에서 자바 프로그래밍 클래스를 추가하여 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 모든 사각형이 비어있는 새 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 제품 페이지의 다운로드 탭에서 해당 솔루션을 찾을 수 있습니다. 행운을 빌어 요!

자바 프로그래밍 과제 : 간단한 Tic-Tac-Toe 프로그램에 수업 추가하기

편집자의 선택

여성 건강 : 케겔 운동 방법 - 인형

여성 건강 : 케겔 운동 방법 - 인형

케겔 운동은 성기의 근육을 타겟으로합니다. 이 근육은 출산 중에 발생하는 스트레칭으로 인해 종종 약해지지만, 임신 한 적이없는 여성을 포함하여 어떤 여성이라도 적절한 케겔 (Kegel)을하는 법을 아는 것이 도움이 될 수 있습니다. 본질적으로 케겔 (Kegel)은 생식기에 좋은 운동을 제공하여 ...

폐경기 동안 기대할 사항 - 인형

폐경기 동안 기대할 사항 - 인형

폐경은 모든 여성의 삶의 사실입니다. 다른 연령대의 여러 단계의 증상으로 진행됩니다. 폐경의 결과로 여성은 알을 낳지 않고 생리를 멈추지 만 여성 호르몬, 에스트로겐 및 호르몬의 생성을 감소시킵니다.

여성 건강 : 요로 감염을 예방하는 방법 - 인형

여성 건강 : 요로 감염을 예방하는 방법 - 인형

요로 감염 (UTI)은 상당히 여성의 공통점. 통증이있는 ​​배뇨 나 잦은 소변과 같은 요로 감염의 증상을 발견하면 치료를받는 것이 중요합니다. UTI 치료는 일반적으로 항생제의 빠른 과정이지만 전문가의 도움을받는 데는 지체가 있으면 치료 시간이 길어질 수 있습니다. ...

편집자의 선택

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

많은 사람들을 위해 일하는 것과 비슷합니다. 많은 기업들이 혜택을 인식하고 있음에도 불구하고 습관을 버리는 것에 저항합니다. 사람들은 깨끗한 데이터가 시스템에 들어갈 수 있도록 시간을 할애하고 싶지 않지만 같은 사람들은 빨리 작업 할 수 있습니다 ...

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce의 모듈은 마케팅 프로그램을 관리, 추적 및 측정하는 데 사용하는 일련의 도구입니다. 캠페인 레코드는 캠페인 레코드입니다. 수동 또는 자동으로 리드, 연락처 및 / 또는 기회 레코드에 링크하여 캠페인에 대한 실제 메트릭을 제공 할 수 있습니다.

편집자의 선택

표시 관련 기사 Joomla 웹 사이트 - 인형

표시 관련 기사 Joomla 웹 사이트 - 인형

Joomla의 또 다른 멋진 모듈은 기사 - 관련 기사. 기사 - 관련 기사는 사이트 방문자가 보려고 선택한 기사와 관련된 기사를 표시하는 모듈입니다. 이 모듈은 현재 기사와 관련된 기사를 어떻게 알 수 있습니까? 그것은 메타 데이터에 입력 할 수있는 메타 데이터 키워드를 사용합니다 ...

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla는 세 가지 프런트 엔드 사용자, 백엔드 사용자 및 그 중간에있는 특수 클래스의 사용자 클래스가 있습니다. 이 클래스에는 3 개의 사용자 그룹이 있습니다. 작성자는 기사를 제출할 수 있습니다. 편집자는 새 기사를 제출하고 기존 기사를 편집 할 수 있습니다. 게시자는 새 기사를 제출하고 기존 기사를 편집하며 기사를 게시 할 수 있습니다. Joomla 사이트 작성자 작성 ...