Hướng dẫn how do you make a tic tac toe code in python? - làm cách nào để tạo mã tic tac toe trong python?

Hãy để chúng tôi tạo ra một trò chơi Tic Tac Toe đơn giản trong Python. Nó sẽ giúp bạn xây dựng logic trò chơi và hiểu cách cấu trúc mã.

Chơi game là một trong những giải trí mà con người có. Chúng tôi có thể tìm thấy các loại trò chơi khác nhau trên web, thiết bị di động, máy tính để bàn, v.v. Chúng tôi không ở đây để tạo ra một trong những trò chơi nặng nề đó bây giờ. Chúng tôi sẽ tạo ra một trò chơi CLI tic-tac-toe bằng Python.

Nếu bạn không quen thuộc với Tic Tac Toe, hãy chơi trực quan ở đây để hiểu. Đừng lo lắng, ngay cả khi bạn không hiểu nó, chúng tôi sẽ thấy nó.

TIC Tac Toe

Hướng dẫn được chia thành ba phần khác nhau. Trong phần đầu tiên, bạn sẽ biết cách chơi trò chơi tic-tac-toe. Sau đó, chúng ta sẽ thấy một thuật toán giúp chúng ta đưa ra logic trò chơi. Cuối cùng, chúng ta sẽ thấy mã có cấu trúc và lời giải thích của nó.

Bạn có thể bỏ qua phần đầu tiên nếu bạn đã biết cách chơi tic tac toe.

Vì vậy, không có gì khó chịu, hãy để Lặn đi vào phần đầu tiên của chúng tôi.

Chơi tic tac toe

Sẽ có hai người chơi trong một trò chơi. Hai dấu hiệu đại diện cho mỗi người chơi. Các dấu hiệu chung được sử dụng trong trò chơi là x & nbsp; và & nbsp; o. Cuối cùng, sẽ có một bảng với 9 hộp.and O. Finally, there will be a board with 9 boxes.

Xem bảng tic-tac-toe trực quan.

Hướng dẫn how do you make a tic tac toe code in python? - làm cách nào để tạo mã tic tac toe trong python?
Tic Tac Toe Board

Trò chơi sẽ như sau.

  • Đầu tiên, một người dùng sẽ đặt dấu hiệu của họ vào một trong các hộp trống có sẵn.
  • Tiếp theo, người dùng thứ hai sẽ đặt dấu hiệu của họ vào một trong các hộp trống có sẵn.
  • Mục tiêu của người chơi là đặt các dấu hiệu tương ứng của họ hoàn toàn khôn ngoan hoặc khôn ngoan, hoặc theo đường chéo.
  • Trò chơi tiếp tục cho đến khi một người chơi thắng trò chơi hoặc kết thúc trong trận hòa bằng cách điền vào tất cả các hộp mà không có trận thắng.

Hãy cùng xem một số trò chơi trực quan.

Hướng dẫn how do you make a tic tac toe code in python? - làm cách nào để tạo mã tic tac toe trong python?
Tic Tac Toe Win Gameplay

Người chơi & NBSP; X & NBSP; chiến thắng trò chơi trong trò chơi trên. Tất cả các hộp theo đường chéo điền với x & nbsp; các dấu hiệu. Vì vậy, người chơi tương ứng thắng trò chơi.wins the game in the above gameplay. All boxes diagonally fill with signs. So, the respective player wins the game.

Có tổng cộng 8 cách để sắp xếp cùng một dấu hiệu và giành chiến thắng trong trò chơi. Hãy cùng xem tất cả 8 sắp xếp có thể giành chiến thắng trong trò chơi.8 ways to arrange the same sign and win the game. Let’s see all the 8 arrangements that can win the game.

Hướng dẫn how do you make a tic tac toe code in python? - làm cách nào để tạo mã tic tac toe trong python?
Tic Tac Tode sắp xếp chiến thắng

Và cuối cùng, một trận hòa lấp đầy bảng mà không có bất kỳ sự sắp xếp chiến thắng nào. Tôi hy vọng bạn hiểu làm thế nào để tic tic toe bây giờ.

Bây giờ, thời gian chơi của nó cho bạn. Bạn có thể đến đây và chơi nó để hiểu hoàn toàn trò chơi. Để nó nếu bạn đã có nó.

Bây giờ, đó là thời gian để di chuyển phần thuật toán.

 Algorithm

Bây giờ chúng tôi sẽ thảo luận về thuật toán để viết mã. Thuật toán này sẽ giúp bạn viết mã bằng bất kỳ ngôn ngữ lập trình nào bạn chọn. Hãy cùng xem cách mà nó đã thực hiện.

  • Tạo một bảng bằng cách sử dụng mảng 2 chiều và khởi tạo từng phần tử là trống.
    • Bạn có thể biểu diễn trống bằng bất kỳ biểu tượng nào bạn thích. Ở đây, chúng tôi sẽ sử dụng dấu gạch nối. '-'.
  • Viết một chức năng để kiểm tra xem bảng có được điền hay không.
    • Lặp lại trên bảng và trả lại false nếu bảng chứa một dấu hiệu trống hoặc nếu không trả về true.
  • Viết một chức năng để kiểm tra xem người chơi có thắng hay không.
    • Chúng tôi phải kiểm tra tất cả các khả năng mà chúng tôi đã thảo luận trong phần trước.
    • Kiểm tra tất cả các hàng, cột và hai đường chéo.
  • Viết một chức năng để hiển thị bảng vì chúng tôi sẽ hiển thị bảng nhiều lần cho người dùng trong khi họ đang chơi.
  • Viết một chức năng để bắt đầu trò chơi.
    • Chọn lượt đầu tiên của người chơi một cách ngẫu nhiên.
    • Viết một vòng lặp vô hạn phá vỡ khi trò chơi kết thúc (thắng hoặc vẽ).
      • Hiển thị bảng cho người dùng để chọn vị trí cho bước tiếp theo.
      • Yêu cầu người dùng nhập số hàng và số cột.
      • Cập nhật vị trí với dấu hiệu người chơi tương ứng.
      • Kiểm tra xem người chơi hiện tại có thắng trò chơi hay không.
      • Nếu người chơi hiện tại giành chiến thắng trong trò chơi, sau đó in một tin nhắn chiến thắng và phá vỡ vòng lặp vô hạn.
      • Tiếp theo, kiểm tra xem bảng có được lấp đầy hay không.
      • Nếu bảng được lấp đầy, sau đó in tin nhắn vẽ và phá vỡ vòng lặp vô hạn.
    • Cuối cùng, hiển thị cho người dùng chế độ xem cuối cùng của bảng.

Bạn có thể hình dung những gì xảy ra. Đừng lo lắng, ngay cả khi bạn không hiểu nó hoàn toàn. Bạn sẽ nhận được rõ ràng hơn khi bạn thấy mã.

Vì vậy, hãy để Lôi nhảy vào phần mã. Tôi giả sử bạn đã cài đặt Python trên PC để thử mã.

Mã số

Đi qua mã dưới đây.

import random


class TicTacToe:

    def __init__(self):
        self.board = []

    def create_board(self):
        for i in range(3):
            row = []
            for j in range(3):
                row.append('-')
            self.board.append(row)

    def get_random_first_player(self):
        return random.randint(0, 1)

    def fix_spot(self, row, col, player):
        self.board[row][col] = player

    def is_player_win(self, player):
        win = None

        n = len(self.board)

        # checking rows
        for i in range(n):
            win = True
            for j in range(n):
                if self.board[i][j] != player:
                    win = False
                    break
            if win:
                return win

        # checking columns
        for i in range(n):
            win = True
            for j in range(n):
                if self.board[j][i] != player:
                    win = False
                    break
            if win:
                return win

        # checking diagonals
        win = True
        for i in range(n):
            if self.board[i][i] != player:
                win = False
                break
        if win:
            return win

        win = True
        for i in range(n):
            if self.board[i][n - 1 - i] != player:
                win = False
                break
        if win:
            return win
        return False

        for row in self.board:
            for item in row:
                if item == '-':
                    return False
        return True

    def is_board_filled(self):
        for row in self.board:
            for item in row:
                if item == '-':
                    return False
        return True

    def swap_player_turn(self, player):
        return 'X' if player == 'O' else 'O'

    def show_board(self):
        for row in self.board:
            for item in row:
                print(item, end=" ")
            print()

    def start(self):
        self.create_board()

        player = 'X' if self.get_random_first_player() == 1 else 'O'
        while True:
            print(f"Player {player} turn")

            self.show_board()

            # taking user input
            row, col = list(
                map(int, input("Enter row and column numbers to fix spot: ").split()))
            print()

            # fixing the spot
            self.fix_spot(row - 1, col - 1, player)

            # checking whether current player is won or not
            if self.is_player_win(player):
                print(f"Player {player} wins the game!")
                break

            # checking whether the game is draw or not
            if self.is_board_filled():
                print("Match Draw!")
                break

            # swapping the turn
            player = self.swap_player_turn(player)

        # showing the final view of board
        print()
        self.show_board()


# starting the game
tic_tac_toe = TicTacToe()
tic_tac_toe.start()

Kiểm tra đầu ra mẫu của mã.

$ python tic_tac_toe.py 
Player X turn
- - -
- - -
- - -
Enter row and column numbers to fix spot: 1 1

Player O turn
X - -
- - -
- - -
Enter row and column numbers to fix spot: 2 1

Player X turn
X - -
O - -
- - -
Enter row and column numbers to fix spot: 1 2

Player O turn
X X -
O - -
- - -
Enter row and column numbers to fix spot: 1 3

Player X turn
X X O
O - -
- - -
Enter row and column numbers to fix spot: 2 2

Player O turn
X X O
O X -
- - -
Enter row and column numbers to fix spot: 3 3

Player X turn
X X O        
O X -        
- - O
Enter row and column numbers to fix spot: 3 2

Player X wins the game!

X X O
O X -
- X O

Một số điểm chính giúp bạn hiểu cấu trúc của mã.

  • Chúng tôi đã sử dụng một lớp để có tất cả các phương pháp ở một nơi. Nó có thể dễ dàng là một gói có thể tái sử dụng trong một số mã khác là tốt.
  • Tiếp theo, chúng tôi đã xác định các chức năng khác nhau cho từng trách nhiệm, ngay cả khi đó là một nhiệm vụ nhỏ. Nó giúp duy trì mã dễ dàng.
  • Hai cách tiếp cận trên giúp chúng tôi cập nhật ứng dụng một cách dễ dàng nếu chúng tôi muốn cập nhật trò chơi.

Hãy thoải mái để điều chỉnh cấu trúc và cải thiện nó dựa trên dự án của bạn. Cấu trúc mã không bị giới hạn.

Từ cuối cùng

Tiếng hoan hô!Bạn đã tạo ra một trò chơi hoàn toàn từ đầu.Nó không phải là một trong những trò chơi trực quan mà chúng tôi chơi hàng ngày.Nhưng nó giúp bạn viết logic và duy trì cấu trúc sạch trong mã.Thực hiện theo các hướng dẫn tương tự để tạo ra một số trò chơi thú vị như thế này.Bạn có thể tìm thấy các trò chơi tương tự nếu bạn quay trở lại một vài năm đến thời thơ ấu của bạn.

Mã hóa hạnh phúc!👩‍💻

Tiếp theo, khám phá cách tạo trò chơi đoán số và thử nghiệm đơn vị với mô -đun Python Unittest.

Thuật toán nào được sử dụng cho Tic Tac Toe trong Python?

Thuật toán Minimax là một quy tắc quyết định được xây dựng cho 2 trò chơi tổng bằng không (Tic-Tac-Toe, cờ vua, GO, v.v.). is a decision rule formulated for 2 player zero-sum games (Tic-Tac-Toe, Chess, Go, etc.).

Bạn có thể tạo một trò chơi với mã Python không?

Tạo các trò chơi máy tính của riêng bạn trong Python là một cách tuyệt vời để học ngôn ngữ.Để xây dựng một trò chơi, bạn sẽ cần sử dụng nhiều kỹ năng lập trình cốt lõi.Các loại kỹ năng mà bạn sẽ thấy trong lập trình trong thế giới thực.. To build a game, you'll need to use many core programming skills. The kinds of skills that you'll see in real-world programming.