Cách tạo trò chơi Tic Tac Toe bằng Python với ví dụ về mã


Trò chơi Tic Tac Toe bằng Python là một dự án thú vị mà bạn có thể thử. Đây là một dự án thú vị và thú vị để giải quyết một thử thách và có thể giúp bạn nắm vững các khái niệm cơ bản trong Python. Tạo một trò chơi tic tac toe vui nhộn giúp bạn phát triển kỹ năng của mình.

Bạn có thể sử dụng trình soạn thảo Python tốt như Pycharm hoặc giao diện dòng lệnh.

Làm thế nào để chơi trò chơi Tic Toc?

Trò chơi Tic tac toe là một trò chơi đơn giản dành cho hai người chơi mà bất kỳ ai cũng có thể chơi mà không cần bảng trò chơi. Nó liên quan đến việc hai người chơi đánh dấu các ô khác nhau cho đến khi trò chơi kết thúc, thắng hoặc hòa.

Đây là cách chơi trò chơi tic tac toe.

Bước 1) Trò chơi tic tac toe bắt đầu bằng các ô trống trong một lưới hình vuông. Đây là bảng tic tac toe.

Bước 2) Cả hai người chơi chọn một trong hai biểu tượng, thường là X hoặc Os. Bạn có thể sử dụng bất kỳ biểu tượng độc đáo nào khác trong trò chơi.

Bước 3) Người chơi hiện tại lần lượt đánh dấu bằng cách điền vào các ô của bảng tic tac toe cho đến khi người chơi điền vào tổ hợp chiến thắng. Đó là toàn bộ hàng, cột hoặc đường chéo có cùng dấu.

Bước 4) Trò chơi cũng có thể hòa trong trường hợp tất cả các ô đều đầy mà không có người chiến thắng rõ ràng

Yêu cầu

Xây dựng dự án Python tic tac toe đòi hỏi sự hiểu biết về ngôn ngữ lập trình Python ở cấp độ mới bắt đầu. Nó bao gồm việc hiểu các vòng lặp và phép lặp “for” cũng như câu lệnh if được sử dụng trong Python.

Bạn cũng cần cài đặt Python và trình soạn thảo văn bản Python trên máy tính của mình để hoàn thành dự án Python tic-tac-toe. Vì đây là trò chơi tic tac-toe dành cho người mới bắt đầu bằng Python nên bạn sẽ không cần bất kỳ thư viện Python nào.

Bạn có thể cần một số kỹ năng sửa lỗi để tìm giải pháp cho các lỗi trong mã của mình và bạn cũng cần có hiểu biết đầy đủ về các thành phần của trò chơi.

Thuật toán Python Tic Tac Toe

Hãy làm theo các bước sau để tạo trò chơi tic tac toe bằng ngôn ngữ lập trình Python:

Bước 1) Tạo bảng để bắt đầu trò chơi tic tac toe.

Bước 2) Yêu cầu người dùng quyết định kích thước bảng trò chơi.

Bước 3) Chọn ngẫu nhiên người chơi đầu tiên.

Bước 4) Trò chơi Tic tac toe bắt đầu.

Bước 5) Người chơi chơi bằng cách chọn một ô trống trên bảng.

Bước 6) Điền vào chỗ trống đã chọn bằng ký hiệu của người chơi.

Bước 7) Xác định xem người chơi thắng hay hòa trong trò chơi bằng cách sử dụng logic trò chơi.

Bước 8) Hiển thị bảng trò chơi sau mỗi lần chơi nếu không có người chơi nào thắng hoặc hòa với người chơi thứ hai.

Bước 9) Hiển thị thông báo hòa hoặc thắng tương ứng.

Bước 10) Kết thúc trò chơi tic tac toe bằng các tùy chọn để bắt đầu trò chơi mới.

Mã Python đầy đủ cho 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()

Đầu ra mã Python Tic Tac Toe

Sau khi bạn chạy mã nguồn ở trên, bên dưới là kết quả mong đợi cho bảng tic tac toe 3 X 3:

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

Phân tích mã đầy đủ

Tạo tic tac toe bằng Python rất đơn giản. Hãy phân tích các chức năng khác nhau theo từng bit để hiểu điều gì đang diễn ra trên mỗi dòng:

In bảng

Bảng Tic tac toe là màn hình chính của trò chơi. Trong, cửa sổ hiển thị Python được sử dụng để hiển thị bảng trò chơi.

Dưới đây là các bước giúp bạn tạo bảng cho tic tac toe trong Python:

Mã Python cho 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)

Đầu ra mã:

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

_ _ _

_ _ _

_ _ _

Trò chơi Tic Tac Toe – dàn xếp chiến thắng

Để kiểm tra xem có người chơi nào thắng hay không, chúng ta cần kiểm tra các kết hợp chiến thắng trên các hàng, cột và đường chéo. Nếu có người chiến thắng, chúng ta cần hiển thị thông điệp chiến thắng.

Hàng

  • Đối với hàng, hàm lấy từng cặp cột liên tiếp và kiểm tra kết hợp chiến thắng.
  • Người chơi đầu tiên điền vào các hàng sẽ thắng. Người chơi thứ hai do đó thua cuộc.
  • Nếu một cặp cột liên tiếp giống nhau thì rõ ràng tất cả các phần tử trong hàng đó đều giống nhau.
  • Nếu hai trong số chúng khác nhau hoặc hàng chứa một ô trống thì vẫn không có người chiến thắng.
  • Sau đó chúng tôi thực hiện các điều kiện mất và thêm thời gian nghỉ. Nếu bất kỳ điều kiện thua nào trong số này là đúng thì chúng ta không có người chiến thắng ở hàng đã chọn.
  • Câu lệnh else mang lại kết quả thực sự để cho thấy rằng có người chiến thắng.
  • Việc ngắt sẽ thoát ra khỏi vòng lặp này để chuyển sang hàng tiếp theo.

Cột

Đối với các cột, chúng ta lặp lại chức năng tương tự như đối với các hàng. Chúng tôi kiểm tra xem người chơi có thắng hay không sau khi mỗi người chơi chọn vị trí của mình.

Hàng chéo thắng

Đối với đường chéo bên trái, nhiệm vụ trở nên đơn giản hơn. Chúng tôi sẽ luôn so sánh các ô theo đường chéo. Tuy nhiên, trong trường hợp không có người chiến thắng, chúng ta có thể chuyển sang hướng dẫn tiếp theo.

Chơi trò chơi logic

Đây là chức năng chính của trò chơi. Để làm được điều này, chúng ta có thể sử dụng các biến lưu trữ thông tin.

  • Biến đầu tiên là kích thước bảng được lưu trữ trong “N”. Trò chơi sẽ lấy kích thước bảng sau khi yêu cầu người dùng nhập số.
  • Vì vậy, khi bạn nhập giá trị, nó sẽ được xử lý.
  • Chúng tôi cũng tạo một thông báo lỗi để hiển thị cho người chơi khi nhập bất kỳ số nào không hợp lệ.
  • Sau đó, chúng ta có thể tạo hai biến điền vào “X” hoặc “O” khi một ô được điền.
  • Sau đó cho người chơi xem bảng trò chơi. Sau đó, lấy thông tin đầu vào của người chơi.
  • Sau đó, logic sẽ đánh dấu ô đã chọn là đã điền và kiểm tra xem thắng hay hòa.
  • Nếu không có người chiến thắng, trò chơi sẽ yêu cầu người chơi tiếp theo chơi. Nếu thắng hoặc hòa, trò chơi có thể hỏi người dùng xem họ có muốn chơi trò chơi mới không.

Phần kết luận

  • Tic tac toe là một trò chơi thú vị dành cho hai người chơi bằng cách đặt một biểu tượng duy nhất vào một ô trống trên bảng.
  • Tạo trò chơi tic tac toe bằng Python đòi hỏi sự hiểu biết ở cấp độ mới bắt đầu về Python, trình soạn thảo văn bản và cài đặt Python.
  • Thuật toán giúp bạn viết mã một cách có hệ thống bằng bất kỳ ngôn ngữ nào.
  • Để tạo trò chơi, trước tiên hãy vẽ bảng và viết mã để xác định cách sắp xếp thắng thua và
  • Bạn có thể kiểm tra mã tic-tac-toe bằng Python bằng cách chơi mã đó trước.