Hướng dẫn build tic tac toe python - xây dựng tic tac toe python

Xin chào những người bạn tuyệt đẹp của tôi trên Internet!

Vì vậy, cách tốt nhất và thú vị nhất để học bất kỳ ngôn ngữ lập trình nào đối với tôi luôn là bằng cách phát triển một dự án thú vị như một trò chơi đơn giản hoặc một số dự án mà tôi sẽ sử dụng trong cuộc sống hàng ngày của mình.

Vì vậy, khi tôi bắt đầu học Python, tôi đã bắt đầu với cuốn sách không có tinh bột nào được xuất bản, tự động hóa những thứ nhàm chán với Python, điều này thật tuyệt vời và nếu bạn đang tìm kiếm một cuốn sách để bắt đầu học Python, tôi sẽ khuyên bạn nên đi Thông qua cuốn sách này. Nó rất thân thiện với người mới bắt đầu và nó bao gồm hầu hết các chủ đề cơ bản của Python. Vì vậy, trong khi giải quyết các bài tập trong cuốn sách này, tôi đã bắt gặp việc triển khai trò chơi Tictactoe này ở Python.

Những gì chúng ta sẽ làm?

Chúng tôi sẽ xây dựng một trò chơi Tic-Tac-Toe hai người chơi, mà chúng tôi có thể chơi trong dòng lệnh. Ban đầu, chúng tôi sẽ tạo một bảng trò chơi trống và sau đó chúng tôi sẽ nhận được đầu vào từ người chơi và chúng tôi sẽ kiểm tra điều kiện chiến thắng và nếu toàn bộ bảng được lấp đầy và không ai thắng, chúng tôi sẽ tuyên bố kết quả là cà vạt Và hỏi người dùng nếu họ muốn khởi động lại trò chơi.

Chúng ta sẽ sử dụng những gì?

Chúng tôi sẽ xây dựng trò chơi này bằng Python 3, vì vậy hãy chắc chắn rằng bạn đã cài đặt nó trên máy tính xách tay/máy tính của bạn và chúng tôi rất tốt để đi.

Những gì chúng tôi sẽ học?

Sau khi xây dựng trò chơi này, chúng ta có thể có được một ý tưởng khá rõ ràng về từ điển trong Python, cách truy cập từ điển, cách lặp lại từ điển, cho các điều kiện và chức năng thay đổi trong Python.

Trò chơi hoạt động như thế nào?

Bảng được đánh số giống như bảng số bàn phím. Và do đó, một người chơi có thể thực hiện di chuyển của họ trong bảng trò chơi bằng cách nhập số từ bảng số bàn phím.

Bảng được đánh số giống như bảng số bàn phím.

Mã thời gian💻

Đầu tiên, hãy để xem cách chúng ta sẽ sử dụng từ điển để tạo bảng trò chơi của chúng tôi. Từ điển là một loại dữ liệu nguyên thủy trong Python lưu trữ dữ liệu ở định dạng khóa: giá trị. Và do đó, chúng tôi sẽ tạo ra một từ điển có độ dài 9 và mỗi khóa sẽ đại diện cho một khối trong bảng và giá trị tương ứng của nó sẽ đại diện cho động thái được thực hiện bởi một người chơi. Và chúng tôi sẽ tạo ra một chức năng printBoard() mà chúng tôi có thể sử dụng mỗi khi chúng tôi muốn in bảng cập nhật trong trò chơi.

Initially our game board will look like this: | |
-+-+-
| |
-+-+-
| |

Bây giờ, trong chức năng chính, trước tiên chúng tôi sẽ lấy đầu vào từ trình phát và kiểm tra xem đầu vào có di chuyển hợp lệ hay không. Nếu khối mà người chơi yêu cầu di chuyển là hợp lệ, chúng tôi sẽ điền vào khối khác mà chúng tôi sẽ yêu cầu người dùng chọn một khối khác.

Bây giờ, để kiểm tra điều kiện chiến thắng, chúng tôi sẽ kiểm tra tổng cộng 8 điều kiện và bất kỳ người chơi nào đã thực hiện bước cuối cùng, chúng tôi sẽ tuyên bố người chơi đó là người chiến thắng. Và nếu không ai thắng, chúng tôi sẽ tuyên bố ‘cà vạt

Và bây giờ, chúng tôi sẽ hỏi các cầu thủ nếu họ muốn chơi lại.

Và bùm!! Bây giờ chúng tôi đã sẵn sàng trò chơi của chúng tôi.😍😍

Mã đầy đủ:

Thời gian chơi:

 | |
-+-+-
| |
-+-+-
| |
It's your turn,X.Move to which place?
7
X| |
-+-+-
| |
-+-+-
| |
It's your turn,O.Move to which place?
9
X| |O
-+-+-
| |
-+-+-
| |
It's your turn,X.Move to which place?
5
X| |O
-+-+-
|X|
-+-+-
| |
It's your turn,O.Move to which place?
3
X| |O
-+-+-
|X|
-+-+-
| |O
It's your turn,X.Move to which place?
6
X| |O
-+-+-
|X|X
-+-+-
| |O
It's your turn,O.Move to which place?
1
X| |O
-+-+-
|X|X
-+-+-
O| |O
It's your turn,X.Move to which place?
4
X| |O
-+-+-
X|X|X
-+-+-
O| |O
Game Over.**** X won. ****

Cảm ơn vì đã cuộn, tôi hy vọng bạn thích nó. Đánh tôi với quan điểm và đề xuất của bạn trong bình luận dưới đây.🙌

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 build tic tac toe python - xây dựng tic tac toe 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 build tic tac toe python - xây dựng tic tac toe 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 build tic tac toe python - xây dựng tic tac toe 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 khác 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.

Làm thế nào để bạn tạo ra một ngón chân tic tic?

Thứ tự chung của các bước để thực hiện: Tạo bảng TAC TAC TOE và lấp đầy nó bằng dấu gạch ngang. Tạo một chức năng vẽ bảng như một hình vuông. Theo dõi lượt của người chơi và biểu tượng họ đang sử dụng. Tiếp tục yêu cầu người dùng nhập một hàng và col cho đến khi họ hợp lệ.Create a Tic Tac Toe board and fill it with dashes. Create a function that draws the board like a square. Keep track of the player's turn and what symbol they are using. Keep asking the user to enter a row and col until they are valid.

Tôi có thể sử dụng Python để xây dựng một trò chơi 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.

Tic tac toe có phải là một dự án tốt?

Nó thực sự khá tốt!Có một mẹo đơn giản mà tôi có xu hướng sử dụng mọi lúc và có tỷ lệ thành công khá tốt với nó.Tôi không biết mánh khóe được gọi là gì, hoặc thậm chí làm thế nào để mô tả nó, nhưng tôi sẽ thử.Vì vậy, nếu chúng tôi có một bảng tic-tac-toe, và tôi thực hiện bước đầu tiên, tôi đặt O của mình ở một trong những góc đầu tiên.! There's a simple trick I tend to use all the time, and have a pretty good success rate with it. I don't know what the trick is called, or even how to describe it, but I shall try. So, if we have a tic-tac-toe board, and I make the first move, I put my O in one of the corners first.

Làm thế nào để bạn thực hiện một trò chơi Python từng bước?

Dưới đây là ví dụ sau đây về việc tạo một cửa sổ pygame đơn giản ...
Nhập pygame ..
pygame.init().
màn hình = pygame.display.set_mode ((400.500)).
Xong = Sai ..
trong khi không được thực hiện:.
cho sự kiện trong pygame.event.get ():.
Nếu event.type == pygame.quit:.
Xong = Đúng ..