비디오: [파이썬 알고리즘]코딩 도장 깨기 - 36. 지뢰 찾기(Lv2) 2024
당신의 임무는 그것을 받아들이기로 결정하면, 사용자와 함께 Tic-Tac-Toe 게임을 할 수있는 Java 프로그램을 만드는 것입니다.
아시다시피 Tic-Tac-Toe는 일반적으로 종이와 연필로 연주되는 간단한 게임입니다. 먼저 종이에 간단한 3 x 3 격자를 만듭니다. 그런 다음 두 명의 플레이어가 그리드의 빈 공간에서 Xs와 Os를 표시하여 교대로 번갈아합니다. 수평, 수직 또는 대각선 행에서 3 개를 만드는 첫 번째 플레이어가 승리합니다. 어떤 플레이어가 연속으로 3 점을 표시하기 전에 그리드의 모든 공백이 채워지면 게임이 추첨됩니다.
이 도전에 대한 규칙과 지침은 다음과 같습니다.
-
컴퓨터가 인간과 경쟁합니다. 컴퓨터는 O입니다.
-
프로그램은 짧은 환영 메시지를 표시하여 시작해야하며 플레이어에게 처음으로 이동하라는 메시지를 표시해야합니다. 예:
Tic-Tac-Toe에 오신 것을 환영합니다. 첫 번째 이동을 입력하십시오:
-
그리드의 제곱을 지정하려면 열에 문자 A, B 및 C를 사용하고 다음과 같이 행에 숫자 1, 2 및 3을 사용하십시오.
X를 사용하여 사람의 연극을 표시하고 O를 사용하여 컴퓨터의 연극을 표시합니다. 세로 막대 문자 (백 슬래시 문자가있는 키보드에서 Enter 키 바로 위에 있음)와 하이픈을 사용하여 간단한 그리드에 보드를 그립니다.예를 들어, 사용자가 첫 번째 이동으로 A1을 입력하면 프로그램은 다음을 표시합니다.
-
X | | --- | --- | --- | | --- | --- | --- | 사람의 이동 후 프로그램은 이동을 결정하고 사용자에게 알리고 업데이트 된 보드를 표시 한 다음 사용자 이동을 묻는 메시지를 표시합니다.
예를 들어, 다음과 같이 표시 될 수 있습니다.A2: X | O | --- | --- | --- | | --- | --- | --- | | 다음 행동을 입력하십시오:
한 선수가 연속으로 3 점을 득점하거나 모든 스퀘어가 승자없이 채워질 때까지 계속 진행됩니다. 프로그램은 두 플레이어가 연속으로 3 점을 득점하고 게임에서 승리했는지 여부를 판단 할 수 있어야합니다. (이것은이 프로그래밍 도전에서 가장 어려운 부분입니다.)
-
게임이 끝나면 게임의 결과를 나타내는 메시지가 나타납니다: "당신은 나를 때려! "인간 선수가 이기면,"나는 당신을 때린다! "컴퓨터 플레이어가 이기면, 또는"무승부 야! "게임이 추첨에서 끝나면.
인간과 컴퓨터 플레이어는 어느 플레이어도 이미 점유하지 않은 사각형에서만 플레이 할 수 있습니다.
프로그램은 플레이어가 게임을 얻거나 게임이 추첨 될 때 종료됩니다. 다시 재생하려면 프로그램을 다시 실행해야합니다.
-
컴퓨터가 어떻게 움직여야하는지 결정하고자하는 방법은 자유롭게 사용할 수 있습니다. 컴퓨터를 항상 첫 번째 빈 칸에서 사용하도록 제안합니다. 이것은 분명히 Tic-Tac-Toe를 플레이하는 가장 좋은 방법은 아니며, 게임을 할 때마다 컴퓨터를 때리는 데 아무런 문제가 없습니다. 그러나이 간단한 게임 전략을 선택하면 내부적으로 그리드를 표현하는 방법과 플레이어가 게임에서이긴 시점 또는 게임이 추첨에서 끝났을 때를 결정하는 방법과 같은 프로그래밍의 다른 측면에 집중할 수 있습니다.
-
("자바 프로그래밍 과제: 간단한 Tic-Tac-Toe 프로그램에 배열 추가하기"에서 프로그램이 플레이를 결정하는 더 나은 전략을 제안해야한다.)
-
완전한 게임을위한 콘솔 디스플레이:
-
Tic-Tac-Toe에 오신 것을 환영합니다. 첫 번째 이동을 입력하십시오:
A1
X | | --- | --- | --- | | --- | --- | --- | | 나는 A2: X에서 놀 것이다. O | --- | --- | --- | | --- | --- | --- | | 다음 이동을 입력하십시오:
B1
X | O | --- | --- | --- X | | --- | --- | --- | | 나는 A3에서 경기 할거야: X | O | O --- | --- | --- X | | --- | --- | --- | | 다음 이동을 입력하십시오: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | 네가 날 이겼어! 시작하기위한 몇 가지 힌트가 있습니다: 그리드를 표현하는 가장 좋은 방법은 배열을 사용하는 것입니다. 지금은 A1, A2, A3, B1, B2, B3, C1, C2 및 C3이라는 9 개의 변수를 사용하십시오. 그리드 변수에 int 유형을 사용하면 사각형에 X가 포함되어 있음을 나타내는 데 1을 사용하고 사각형에 O가 포함되어 있음을 나타 내기 위해 2를 사용할 수 있습니다. 8 개의 가능한 행이 승리로 이어질 수 있습니다. 플레이어는 다음의 사각형 조합 중 하나가 1 (X의 경우) 또는 2 (O의 경우) 인 경우 승리합니다. B2-C2 A3-B2-C1 C1-C2-C3 A3-B3-C3
게임이 추첨인지 여부를 결정하는 두 가지 방법이 있습니다. 첫 번째는 9 개의 모든 사각형을 확인하는 것입니다. 사각형 중 어느 것도 비어 있지 않고 플레이어가 모두 승리하지 않은 경우 게임은 추첨입니다. 두 번째는 이동을 계산하는 것입니다. 9 개의 이동이 이루어졌지만 두 플레이어가 모두 이길 수 없다면 게임은 무승부입니다.
-
이 프로그래밍 챌린지에 대한 해결책은
-
Java Droidies,
-
4th Edition 제품 페이지의 다운로드 탭에서 찾을 수 있습니다.
행운을 빌어 요!