Tic Tac Toe 게임을 만드는 방법 Python 과 Code 예시

⚡ 스마트 요약

틱택토 인 Python 이 프로젝트는 초보자도 쉽게 따라할 수 있는 2인용 격자 게임입니다. 게임을 만드는 과정에서 반복문, 조건문, 리스트, 함수, 재귀 등의 핵심 프로그래밍 기술을 익히고, 행, 열, 대각선을 확인하여 승자를 가립니다.

  • 🎮 게임 플레이 : 두 명의 플레이어가 정사각형 격자에 X와 O를 표시하여 한 명이 한 행, 한 열 또는 대각선을 완성할 때까지 진행합니다.
  • 🧩 핵심 논리: 중첩 리스트는 보드를 저장하고, 루프와 조건문은 턴을 제어하고 승패를 감지합니다.
  • 🏗️ 빌드 단계: 게임판을 만들고, 첫 번째 플레이어를 선택하고, 입력을 받고, 칸을 표시한 다음, 매 라운드마다 승자를 확인합니다.
  • 🔁 재생 : 재귀적인 play() 호출은 경기를 다시 시작하고, 입력 유효성 검사는 이미 점유되었거나 범위를 벗어난 이동을 차단합니다.
  • 🤖 AI의 관련성: 동일한 보드는 미니맥스 알고리즘과 강화 학습 에이전트를 위한 이상적인 실험장입니다.
  • 🛠️ 도구 : 만 Python 그리고 편집자 같은 PyCharm 필요한 것은 없으며, 외부 라이브러리는 필요하지 않습니다.

틱택토 게임 Python

틱택토 게임 Python 한번 시도해 볼 만한 흥미로운 프로젝트입니다. 도전 과제를 해결하는 재미있고 멋진 프로젝트이며, 기본적인 개념을 익히는 데에도 도움이 될 수 있습니다. Python재미있는 틱택토 게임을 만드는 것은 실력 향상에 도움이 됩니다.

좋은 것을 사용하시면 됩니다 Python 와 같은 편집자 PyCharm 또는 명령줄 인터페이스를 사용합니다.

틱택토 게임 방법은 무엇인가요?

틱택토는 게임판 없이도 누구나 즐길 수 있는 간단한 2인용 게임입니다. 두 플레이어가 서로 다른 칸에 표시를 하면서 게임이 끝나고 승리 또는 무승부가 됩니다.

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

단계 1) 틱택토 게임은 정사각형 격자에 빈 칸들이 있는 것으로 시작합니다. 이것이 틱택토 게임판입니다.

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

단계 3) 현재 플레이어는 차례대로 틱택토 보드의 칸을 채워 승리 조합을 완성할 때까지 게임을 진행합니다. 승리 조합이란 한 행, 한 열 또는 대각선 전체에 같은 기호를 채워 넣는 것을 의미합니다.

단계 4) 모든 칸이 채워져 승자가 명확하지 않은 경우 게임 무승부가 발생할 수도 있습니다.

요구조건 니즈

틱택토 만들기 Python 이 프로젝트에는 초급 수준의 이해가 필요합니다. Python 프로그래밍 언어에 대한 내용입니다. "for" 루프와 반복문, 그리고 if 문의 용도를 이해하는 것이 포함됩니다. Python.

당신은 또한 가지고 있어야합니다 Python 및 Python 틱택토 게임을 완료하려면 컴퓨터에 텍스트 편집기가 설치되어 있어야 합니다. Python 이 프로젝트는 초보자 수준의 틱택토 게임입니다. Python그러면 아무것도 필요하지 않을 것입니다. Python 도서관.

코드의 버그를 해결하기 위해서는 디버깅 기술이 필요할 수 있으며, 게임 구성 요소에 대한 충분한 이해도 필요합니다.

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

다음 단계를 따라 틱택토 게임을 만들어 보세요. Python 프로그래밍 언어:

단계 1) 틱택토 게임을 시작하기 위한 게임판을 만드세요.

단계 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 Code 출력

위 소스 코드를 실행하면 아래와 같이 3x3 틱택토 보드의 예상 출력 결과가 나타납니다.

------------
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):

가득 찬 Code 분석

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

보드 인쇄

틱택토 게임판이 주요 게임 화면입니다. Python게임판을 보여주는 데 디스플레이 창이 사용됩니다.

다음은 틱택토 게임판을 만드는 데 도움이 되는 단계입니다. 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)

Code 출력 :

------------
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"를 채우는 두 개의 변수를 만들 수 있습니다.
  • 그런 다음 플레이어에게 게임 보드를 보여줍니다. 그런 다음 플레이어의 입력을 받습니다.
  • 그런 다음 로직은 선택된 셀을 채워진 것으로 표시하고 승리 또는 무승부를 확인합니다.
  • 승자가 없으면 다음 플레이어에게 게임을 요청합니다. 승리 또는 무승부가 발생하면 게임은 사용자에게 새로운 게임을 원하는지 물어볼 수 있습니다.

자주 묻는 질문

네. 틱택토는 반복문, 조건문, 함수를 활용하여 게임을 구현하는 고전적인 초보자 프로젝트입니다. 이를 통해 자신감을 키우고 핵심 문법을 익히며, 외부 라이브러리 없이도 더 큰 프로젝트를 진행할 준비를 할 수 있습니다.

이 책은 보드 관리를 위한 중첩 리스트, 턴 진행을 위한 for 및 while 루프, 승리 조건 확인을 위한 if 문, 구조화를 위한 함수, 그리고 재시작을 위한 재귀 함수를 다룹니다. 이러한 기본기는 고급 기술에도 직접적으로 적용됩니다. Python 프로그램.

네. 콘솔 버전 외에도 Tkinter나 Pygame 같은 라이브러리를 사용하면 클릭 가능한 버튼, 그려진 격자, 마우스 입력 등을 추가할 수 있습니다. 게임 로직은 그대로 유지되고, 표시 및 입력 레이어만 변경됩니다.

틱택토는 이미 해법이 정해진 게임입니다. 두 플레이어가 최적의 플레이를 펼칠 경우, 모든 위협을 차단할 수 있으므로 어느 누구도 승리를 강요할 수 없습니다. 그렇기 때문에 완벽한 경기라면, 사람이든 컴퓨터든 항상 무승부로 끝나는 것입니다.

초보자도 반복문과 조건문에 익숙해지면 기본적인 콘솔 버전은 1~3시간 안에 완성할 수 있습니다. 하지만 입력 유효성 검사, 확장 가능한 보드 또는 그래픽 인터페이스를 추가하면 주말 동안 연습하며 완성할 수 있는 프로젝트로 늘어납니다.

플레이어 하나를 미니맥스 함수로 대체합니다. 이 함수는 가능한 모든 수를 재귀적으로 탐색하여 승리, 패배, 무승부를 계산한 다음, 가장 확실한 결과를 보장하는 수를 선택합니다. 작은 보드에서는 이 방법으로 컴퓨터를 이길 수 없습니다.

네. Q-러닝과 같은 강화 학습 에이전트는 수천 번의 게임을 플레이하고 승리하는 수에 보상을 제공함으로써 성능이 향상됩니다. 보드는 배열 형태로 저장됩니다. 눔 파이이를 통해 모델은 하드코딩된 규칙 없이 거의 최적에 가까운 전략을 학습할 수 있습니다.

네. GitHub Copilot과 같은 AI 도우미는 간단한 입력만으로 보드 구성, 턴 루프 생성, 체크 확인 등의 작업을 수행할 수 있습니다. 출력 결과를 초안으로 간주하고, 무승부나 잘못된 수와 같은 예외 상황을 직접 테스트해 보세요.

이 게시물을 요약하면 다음과 같습니다.