Tic Tac Toe 게임을 만드는 방법 Python 코드 예시 포함

틱택토 게임 Python 시도해 볼 수 있는 흥미로운 프로젝트입니다. 도전 과제를 해결하는 멋지고 재미있는 프로젝트이며 기본 개념을 익히는 데 도움이 될 수 있습니다. Python. 재미있는 틱택토 게임을 만들면 기술을 향상하는 데 도움이 됩니다.

좋은 것을 사용하시면 됩니다 Python Pycharm이나 명령줄 인터페이스와 같은 편집기.

Tic Toc 게임을 어떻게 플레이하나요?

틱택토(Tic tac toe) 게임은 게임판이 없어도 누구나 즐길 수 있는 간단한 XNUMX인용 게임입니다. 게임이 끝날 때까지 두 명의 플레이어가 서로 다른 셀을 표시하여 승리 또는 동점이 달성됩니다.

틱택토 게임 방법은 다음과 같습니다.

단계 1) tic tac toe 게임은 정사각형 격자의 빈 셀로 시작됩니다. 틱택토 보드 입니다.

단계 2) 두 플레이어 모두 일반적으로 Xs 또는 Os라는 두 가지 기호 중에서 선택합니다. 게임에서 다른 고유 기호를 사용할 수 있습니다.

단계 3) 현재 플레이어는 플레이어가 승리 조합을 채울 때까지 틱택토 보드의 셀을 차례로 채워 표시합니다. 이는 동일한 부호를 가진 전체 행, 열 또는 대각선입니다.

단계 4) 명백한 승자가 없이 모든 셀이 가득 찬 경우 게임 동점도 가능합니다.

요구조건 니즈

건물 박하 사탕 발가락 Python 프로젝트 초급 수준의 이해가 필요합니다. Python 프로그래밍 언어. 여기에는 "for" 루프 및 반복에 대한 이해와 if 문이 사용되는 내용이 포함됩니다. Python.

당신은 또한 가지고 있어야합니다 Python 및 Python tic-tac-toe를 완료하기 위해 컴퓨터에 설치된 텍스트 편집기 Python 프로젝트. 이 게임은 초급 수준의 틱택토 게임이기 때문에 Python, 아무것도 필요하지 않습니다 Python 도서관.

코드의 버그에 대한 해결책을 찾으려면 몇 가지 디버깅 기술이 필요할 수 있으며 게임 구성 요소에 대한 적절한 이해도 있어야 합니다.

과자 사탕 발가락 Python 암호알고리즘

tic tac toe 게임을 만들려면 다음 단계를 따르세요. Python 프로그래밍 언어:

단계 1) tic tac toe 게임을 시작하려면 보드를 만드세요.

단계 2) 사용자에게 게임 보드 크기를 결정하도록 요청합니다.

단계 3) 무작위로 첫 번째 플레이어를 선택합니다.

단계 4) 틱택토 게임이 시작됩니다.

단계 5) 플레이어는 보드의 빈 자리를 선택하여 플레이합니다.

단계 6) 선택된 빈 자리를 플레이어의 사인으로 채웁니다.

단계 7) 게임 로직을 사용하여 플레이어가 게임에서 승리할지 아니면 무승부를 얻을지 결정합니다.

단계 8) 어떤 플레이어도 이기거나 두 번째 플레이어와 동점을 얻지 못한 경우 매 플레이 후에 게임 보드를 표시합니다.

단계 9) 각각 무승부 또는 승리 메시지를 표시합니다.

단계 10) 새 게임을 시작하는 옵션으로 틱택토 게임을 종료하세요.

가득 찬 Python 틱택토 코드

# Guru99
# Code developed by Guru99.com
# Guru99 tic-tac-toe game
#Get input
def getInput(prompt, cast=None, condition=None, errorMessage=None):
  while True:
      try:
          val = cast(input(prompt))
          assert condition is None or condition(val)
          return val
      except:
          print(errorMessage or "Invalid input.")
# Print the game board
def printBoard(board):
  print()
  for row in board:
      print(*row)
  print()
# Check if player won using the winning combinations
def checkWin(board):
  # Check rows
  for row in range(len(board)):
      for col in range(len(board)-1):
          if board[row][col] == "_" or board[row][col+1] == "_" or board[row][col] != board[row][col+1]:
              break
      else:
          return True
  # Check column numbers
  for col in range(len(board)):
      for row in range(len(board)-1):
          if board[row][col] == "_" or board[row+1][col] == "_" or board[row][col] != board[row+1][col]:
              break
      else:
          return True
  # Check left diagonal
  for cell in range(len(board)-1):
      if board[cell][cell] == "_" or board[cell+1][cell+1] == "_" or board[cell][cell] != board[cell+1][cell+1]:
          break
  else:
      return True
  # Check right diagonal
  for cell in range(len(board)-1):
      emptyCell = board[cell][len(board)-cell-1] == "_" or board[cell+1][len(board)-cell-2] == "_"
      different = board[cell][len(board)-cell-1] != board[cell+1][len(board)-cell-2]
      if emptyCell or different:
          break
  else:
      return True
  # No win
  return False
# Play tic tac toe game
def play():
  # Introduction
  print("------------\nN-DIMENSIONAL TIC TAC TOE game by guru 99.com \n------------")
  # Set up variables
  N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ",
               cast=int,
               condition=lambda x: x >= 3,
               errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com")
  board = [['_'] * N for _ in range(N)]
  used = 0
  turn = 0
  # Play guru99 tic tac toe game in Python using while infinite loop
  while True:
      # Print guru99 tic tac toe game board
      printBoard(board)
      # Get user pick
      pick = getInput(prompt=f"Player {turn+1} - Pick location (row, col): ",
                      cast=lambda line: tuple(map(int, line.split(" "))),
                      condition=lambda pair: min(pair) >= 0 and max(pair) < N and board[pair[0]][pair[1]] == "_",
                      errorMessage="Invalid input. Please enter a valid, unoccupied location as an integer pair.")
      # Populate location
      board[pick[0]][pick[1]] = "X" if turn == 0 else "O"
      used += 1
      # Check for win
      #Guru99 tutorial
      if checkWin(board):
          printBoard(board)
          print(f"Game over, Player {turn+1} wins.")
          break
      # Check for tie
      elif used == N*N:
          printBoard(board)
          print("Game over. Players have tied the match.")
          print("Guru99.com tic tac toe game ")
          break
      # If no win yet, update next user
      turn = (turn+1)%2
  # Check for rematch
  playAgain = getInput(prompt="Play Guru99 tic tac toe_Game again? (y/n): ",
                       cast=str,
                       condition=lambda ans: ans.strip("\n").lower() in {"y", "n"},
                       errorMessage="Invalid input. Please enter 'y' or 'n'.")
  if playAgain == 'n':
      # End the game
      print("\nGuru99 TicTacToe game ended.")
      return
  else:
      # Rematch
      play()
# Main
if __name__ == '__main__':
  play()

과자 사탕 발가락 Python 코드 출력

위의 소스 코드를 실행하면 다음은 3 X 3 tic tac toe 보드의 예상 출력입니다.

------------
N-DIMENSIONAL TIC TAC TOE game by guru 99.com
------------
Guru99 says>>> Enter N, the dimensions of the board: 3

_ _ _

_ _ _

_ _ _

Player 1 - Pick location (row, col): 1 1

_ _ _

_ X _

_ _ _

Player 2 - Pick location (row, col): 0 1

_ O _

_ X _

_ _ _

Player 1 - Pick location (row, col): 1 2

_ O _

_ X X

_ _ _

Player 2 - Pick location (row, col): 0 2

_ O O

_ X X

_ _ _

Player 1 - Pick location (row, col): 1 0

_ O O

X X X

_ _ _

Game over, Player 1 wins.
Play Guru99 tic tac toe_Game again? (y/n):

전체 코드 분석

만들기 틱택토 인 Python 간단하다. 각 라인에서 무슨 일이 일어나고 있는지 이해하기 위해 다양한 기능을 비트 단위로 분석해 보겠습니다.

보드 인쇄

Tic tac toe 보드는 주요 게임 디스플레이입니다. 안에, Python 디스플레이 창은 게임 보드를 표시하는 데 사용됩니다.

다음은 tic tac toe용 보드를 만드는 데 도움이 되는 단계입니다. Python:

Python Tic Tac Toe 코드

def getInput(prompt, cast=None, condition=None, errorMessage=None):
   while True:
       try:
           val = cast(input(prompt))
           assert condition is None or condition(val)
           return val
       except:
           print(errorMessage or "Invalid input.")
# Print the board
def printBoard(board):
   print()
   for row in board:
       print(*row)
   print()
N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ",
            cast=int,
            condition=lambda x: x >= 3,
            errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com")
board = [['_'] * N for _ in range(N)]
used = 0
turn = 0
printBoard(board)

코드 출력:

------------
N-DIMENSIONAL TIC TAC TOE game by guru 99.com
------------
Guru99 says>>> Enter N, the dimensions of the board: 3

_ _ _

_ _ _

_ _ _

Tic Tac Toe 게임 – 승리 준비

어떤 플레이어가 승리했는지 확인하려면 행, 열, 대각선에서 승리 조합을 확인해야 합니다. 승자가 있다면 승자 메시지를 보여줘야 합니다.

  • 행의 경우 함수는 모든 연속 열 쌍을 가져와서 성공적인 조합을 확인합니다.
  • 행을 가장 먼저 채우는 플레이어가 승리합니다. 따라서 두 번째 플레이어는 패배합니다.
  • 한 쌍의 연속 열이 동일하면 해당 행 내의 모든 요소가 동일하다는 것이 분명합니다.
  • 둘 중 두 개가 다르거나 행에 빈 셀이 포함되어 있으면 여전히 승자가 없습니다.
  • 그런 다음 손실 조건을 구현하고 중단을 추가합니다. 이러한 패배 조건 중 하나라도 해당되면 체크된 행에 승자가 없는 것입니다.
  • else 문은 승자가 있음을 보여주기 위해 진정한 반환을 제공합니다.
  • 중단은 이 루프에서 벗어나 다음 행으로 진행됩니다.

열의 경우 행과 동일한 기능을 반복합니다. 각 플레이어가 자신의 자리를 선택한 후 플레이어가 승리했는지 확인합니다.

대각선 승리

왼쪽 대각선의 경우 작업이 더 간단해집니다. 우리는 항상 대각선의 셀을 비교할 것입니다. 그러나 승자가 없는 경우에는 다음 명령으로 진행할 수 있습니다.

게임 로직 플레이

이것이 게임의 주요 기능입니다. 이를 위해 정보를 저장하는 변수를 사용할 수 있습니다.

  • 첫 번째 변수는 “N”에 저장된 보드 크기입니다. 게임은 사용자에게 숫자를 입력하도록 요청한 후 보드 크기를 가져옵니다.
  • 따라서 값을 입력하면 처리됩니다.
  • 또한 잘못된 숫자를 입력한 경우 플레이어에게 표시되는 오류 메시지도 생성합니다.
  • 그런 다음 셀이 채워질 때 "X" 또는 "O"를 채우는 두 개의 변수를 만들 수 있습니다.
  • 그런 다음 플레이어에게 게임 보드를 보여줍니다. 그런 다음 플레이어의 입력을 받습니다.
  • 그런 다음 로직은 선택된 셀을 채워진 것으로 표시하고 승리 또는 무승부를 확인합니다.
  • 승자가 없으면 다음 플레이어에게 게임을 요청합니다. 승리 또는 무승부가 발생하면 게임은 사용자에게 새로운 게임을 원하는지 물어볼 수 있습니다.

결론

  • Tic tac toe는 빈 보드 셀에 고유한 기호를 배치하여 플레이할 수 있는 재미있는 XNUMX인용 게임입니다.
  • tic tac toe 게임 만들기 Python 초급 수준의 이해가 필요합니다. Python, 텍스트 편집기 및 Python 설치.
  • 이 알고리즘은 모든 언어로 코드를 체계적으로 작성하는 데 도움이 됩니다.
  • 게임을 만들려면 먼저 보드를 그리고 코드를 작성하여 승패를 결정합니다.
  • tic-tac-toe 코드를 테스트할 수 있습니다. Python 먼저 플레이해서요.