Как да направите игра Tic Tac Toe в Python с примерен код

Tic Tac Toe Игра в Python е интересен проект, който можете да опитате. Това е готин и забавен проект за решаване на предизвикателство и може да ви помогне да овладеете основни концепции в Python. Създаването на забавна игра с тик так пръсти ви помага да развиете уменията си.

Можете да използвате добър Python редактор като Pycharm или интерфейса на командния ред.

Как се играе Tic Toc Game?

Играта Tic Tac Toe е проста игра за двама играчи, която всеки може да играе, без да се нуждае от игрална дъска. Включва двама играчи, които маркират различни клетки, докато играта приключи, при победа или равенство.

Ето как да играете играта tic tac toe.

Стъпка 1) Играта tic tac toe започва с празни клетки в квадратна мрежа. Това е дъската за тик так пръсти.

Стъпка 2) И двамата играчи избират от два символа, обикновено Xs или Os. Можете да използвате всеки друг уникален символ в играта.

Стъпка 3) Текущият играч отбелязва редове, като попълва клетките на таблото с тик так пръсти, докато играчът попълни печеливша комбинация. Това е цял ред, колона или диагонал със същия знак.

Стъпка 4) Равенство в играта също е възможно, в случай че всички клетки са пълни и няма явен победител

Изисквания

Изграждане на морски шах Python проект изисква разбиране на ниво начинаещ Python език за програмиране. То включва разбиране на циклите „for“ и итерациите и в какво се използва изразът if Python.

Вие също трябва да имате Python и Python текстов редактор, инсталиран на вашия компютър, за да завършите тик-так Python проект. Тъй като това е игра с тик так пръсти на ниво за начинаещи Python, няма да ви трябват Python библиотека.

Може да се нуждаете от някои умения за отстраняване на грешки, за да намерите решения за грешки в кода си, а също така трябва да имате достатъчно разбиране за компонентите на играта.

Tic Tac Toe Python алгоритъм

Следвайте тези стъпки, за да създадете игра с тик так пръсти Python език за програмиране:

Стъпка 1) Създайте дъската, за да започнете играта tic tac toe.

Стъпка 2) Помолете потребителя да вземе решение относно размерите на дъската за игра.

Стъпка 3) На случаен принцип изберете първия играч.

Стъпка 4) Играта Tic Tac Toe започва.

Стъпка 5) Играчите играят, като избират празно място на дъската.

Стъпка 6) Попълнете празното избрано място със знака на играча.

Стъпка 7) Определете дали даден играч печели или получава равенство в играта, като използвате логиката на играта.

Стъпка 8) Показвайте таблото за игра след всяка игра, ако никой играч не спечели или получи равенство с втория играч.

Стъпка 9) Покажете съответно съобщение за равенство или победа.

Стъпка 10) Завършете играта с tic tac toe с опции за започване на нова игра.

Пълен Python код за tic tac toe

# 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()

Tic Tac Toe 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):

Пълна разбивка на кода

Създаване tic tac toe in Python е просто. Нека анализираме различните функции на части, за да разберем какво се случва за всеки ред:

Отпечатване на таблото

Таблото Tic tac toe е основният дисплей на играта. в, 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)

Изходен код:

------------
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 е забавна игра за двама играчи, която можете да играете, като поставите уникален символ в празна клетка на дъската.
  • Създаване на игра tic tac toe в Python изисква разбиране на ниво начинаещ Python, текстов редактор и Python инсталирана.
  • Алгоритъмът ви помага систематично да пишете кода на всеки език.
  • За да създадете играта, първо начертайте дъската и напишете код, за да определите кои са печелившите и губещите договорености
  • Можете да тествате кода на tic-tac-toe в Python като го пуснете първо.