Xây dựng Tic Tac Toe Python

Hiểu vòng lặp trò chơi cho trò chơi tic tac toe Python cho phép người chơi hiểu cách chơi trò chơi cho đến khi người chơi đó thắng hoặc một trận hòa xảy ra giữa hai người chơi. Ngoài ra, trong trò chơi tic tac toe Python, mỗi nước đi của người chơi được biểu thị bằng phép lặp vòng lặp.

Mã số

print ("Below is the code for ")

print (" To Understand the design of Game-Loop of tic tac toe Python")
###To Understand the design of Game-Loop of tic tac toe Python
while True:  
    tictactoe_grid(value)
#using the while loop to call the  tictactoe_grid function whenever it remains TRUE.
# To handle the input from the player using the Try-Exception block for 'CHANCE' input 
    try:  
        print("The player ", player_current, " turn. Now you need to choose your block : ", end="")  
        chance = int(input())  
    except ValueError:  
        print("This is an Invalid Input!!! Please try again!")  
        continue
  
    print("Below is the sanity check for 'CHANCE' input")  
    if chance < 1 or chance > 9:  
        print("This is an Invalid Input!!! Please try again!")  
        continue  
   
    print(" To check if the block in the grid is not filled up already ") 
    if value[chance - 1] != ' ':  
        print("Oops! The position is already filled. Please try again!")  
        continue  

Giải trình

Để in các giá trị cho hàm tictactoe_grid(), chúng tôi đã sử dụng vòng lặp while từ Python để giúp chúng tôi tạo vòng lặp trò chơi Python tic tac toe duy nhất

Để xử lý đầu vào từ người chơi, chúng tôi đang sử dụng khối Try-Exception cho đầu vào 'CƠ HỘI' có thể xử lý giá trị ngoài ý muốn nếu được người trả tiền cung cấp khi di chuyển trong mỗi lần lặp lại trò chơi. Chúng tôi cũng đã xử lý ngoại lệ ValueError để giải quyết nếu gặp phải lỗi tương tự và cũng để duy trì tính liên tục của trò chơi. Cuối cùng, chúng tôi cũng đã thực hiện một số kiểm tra về độ chính xác, để xác minh xem giá trị do người chơi đưa ra có phải là giá trị đầu vào hợp lệ hay không hoặc liệu vị trí hợp lệ được cung cấp đã có người sử dụng hay chưa.

Bước 4. Cập nhật thông tin trò chơi

Bây giờ chúng tôi đã hiểu vòng lặp trò chơi và thu thập thông tin đầu vào từ người chơi, chúng tôi cũng cần cập nhật thông tin. Chúng ta có thể làm cho trò chơi tic tac toe Python của mình hoạt động trơn tru bằng cách cập nhật thông tin bằng cách nối đoạn mã được cung cấp bên dưới vào chương trình trò chơi chính của chúng ta

Mã số

print ("Below is the code for ")

print (" To update the inputs from a player into the game information of tic tac toe Python")

value[chance - 1] = player_current  
# By adding the above code, we update the status of the gameboard  
 
position_player[player_current].append(chance)  
# By adding the above code, we update the player's position on the grid.

đầu ra

Below is the code for 
To update the inputs from the player into the game information of tic tac toe Python

             |     |
          1  |  2  |  3
        _____|_____|_____
             |     |
          4  |  5  |  6
        _____|_____|_____
             |     |
          7  |  8  |  9
             |     |
             

Giải trình

Khi chúng ta gọi hàm tictactoe_grid(), lưới sẽ như hình trên vì chúng ta hiện đã cập nhật danh sách giá trị. Chúng tôi đã cập nhật trạng thái của lưới cùng với vị trí của người chơi bằng cách cập nhật thông tin trò chơi của chúng tôi, nơi chúng tôi cập nhật các hộp đã bị chiếm giữ theo người chơi được phản ánh bởi danh sách giá trị. Ngoài ra, bằng cách thêm vị trí vừa được thực hiện bởi di chuyển của người chơi hiện tại, chúng tôi phản ánh vị trí của người chơi

Bây giờ chúng ta chuyển sang phân tích tình huống thắng hoặc hòa. Để làm được điều đó, chúng tôi cần xác thực xem có bất kỳ người chơi nào sau mỗi nước đi của họ đã giành chiến thắng trong trò chơi tic tac toe Python hay không hoặc nếu trò chơi kết thúc với tỷ số hòa

Chúng tôi sẽ tạo hai hàm do người dùng định nghĩa trong Python để xác thực tình huống Thắng hoặc Hòa. Chúng tôi đặt tên cho các hàm này là win_validate() và tie_validate()

win_validate(). Chức năng này xác thực nếu người chơi đã thỏa mãn bất kỳ kết hợp chiến thắng nào được lưu trữ. Nếu có, thì nó sẽ trả về TRUE;

tie_validate(). Đây là chức năng xác nhận nếu tất cả các ô 'Chín' trên lưới được lấp đầy và trò chơi kết thúc với tỷ số hòa

Mã số

print ("Below is the code for ")

print (" To  To validate the Win or Tie situation of tic tac toe Python")
# User-defined function Python for validating the win combinations in the entire tic tac toe Python game  
def win_validate(position_player, player_current):  
   
 # Below are all the possible winning combinations that were analyzed to win the tic tac toe Python game  
    win_combinations = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 4, 7], [2, 5, 8], [3, 6, 9], [1, 5, 9], [3, 5, 7]]  
   
# using the for loop in Python to validate if any winning combination is getting validated as TRUE or not  
    for i in win_combinations:  
        if all(j in position_player[player_current] for j in i):  
   
# If any winning combination is getting validated as TRUE then the function shall return TRUE  
            return True  
# If any winning combination is not getting validated as TRUE then the function shall return FALSE   
    return False         
   
# User-defined function Python for validating is the tic ta toe Python game is a tie   
def tie_validate(position_player):  
    if len(position_player['X']) + len(position_player['O']) == 9:  
        return True  
    return False     
    
# calling the UDF to check for Win  
if win_validate(position_player, player_current):  
    tictactoe_grid(value)  
    print("Hurray! You nailed it! ", player_current, " has won the tic tac toe Python game!")       
    print("\n")  
    return player_current  
      
# calling the UDF to check for Tie  
if tie_validate(position_player):  
    tictactoe_grid(value)  
    print("It was close! Game is Tied")  
    print("\n")  
    return 'D'  

Giải trình

Như đã thấy ở trên, chúng tôi đã tạo hàm do người dùng xác định (UDF) trong Python để xác định win_validate() và tie_validate(). Chúng tôi đã sử dụng các vòng lặp for trong Python và các câu lệnh if để xác thực xem kết hợp chiến thắng để giành chiến thắng trong trò chơi có được đáp ứng hay không. Liên tiếp, trong khi gọi cả hai hàm, chúng ta sẽ nhận được đầu ra tương ứng nếu trò chơi được thắng bởi bất kỳ người chơi nào hoặc nó dẫn đến hòa. Hàm game_single() sẽ trả về nếu người chơi hiện tại có thắng trò chơi hay không. Nếu không, trò chơi sẽ trả về 'D' nghĩa là hòa

Bước 6. Chuyển đổi giữa người chơi sau khi cơ hội của một người chơi được thực hiện

Vì trò chơi tic tac toe Python dựa trên một cơ hội thay thế được trao cho mỗi người chơi sau khi một người chơi đã chơi hết cơ hội của mình, do đó, chúng tôi sẽ sử dụng vòng lặp if-else trong Python ngay bây giờ để cho phép chuyển đổi này giữa những người chơi sau khi cơ hội của nó đã hết

Mã số

print ("Below is the code for ")

print (" To validate switching between the player once the chance of one player is executed")
# using the if-else loop in Python to make the switch between the player  
if player_current == 'X':  
    player_current = 'O'  
else:  
    player_current = 'X'

Giải trình

Chúng tôi đã triển khai câu lệnh if-else trong Python để chuyển đổi giữa các trình phát sau khi cơ hội của một trình phát được thực hiện theo cách mà khi trình phát hiện tại di chuyển và chiếm một vị trí từ lưới, thì chương trình phải chuyển vị trí đó sang vị trí

Bước 7. Ghi lại Tên của Người chơi để Quan sát trên Bảng Điểm

Vì chúng tôi đang duy trì bảng điểm để xem điểm số so với tên của từng người chơi sau khi họ chơi nhiều trận của trò chơi tic tac toe Python, chúng tôi sẽ sử dụng chức năng chính trong Python để nắm bắt và ghi lại tên của Người chơi để quan sát trên bảng điểm.

Mã số

print ("Below is the code for ")
print (" To Record the Player's names to observe on the scoreboard")

if __name__ == "__main__":  
   
    print("The First Player's name")  
    player_first = input("Please mention your name: ")  
    print("\n")  
# implmenting the input function in Python to allow the user of the game to input its name.

    print("The Second Player's name")  
    player_second = input("Please mention your name:  ")  
    print("\n")  

Giải trình

Ở trên hiển thị biến __name__ đặc biệt có giá trị là "chính". Chúng tôi sử dụng chức năng nhập liệu trong Python để cung cấp tên của hai người chơi. Điều này sẽ được ghi lại ngay khi trò chơi bắt đầu khi toàn bộ chương trình cho trò chơi tic tac toe Python được thực thi

Bước 8. Để nắm bắt thông tin trò chơi

Trong trò chơi tic tac toe Python, điều quan trọng là phải lưu trữ thông tin trò chơi để chúng tôi thu thập dữ liệu liên quan đến người chơi hiện tại, lựa chọn giữa X hoặc O mà người chơi chọn, các tùy chọn có sẵn trong trò chơi.

Mã số

print ("Below is the code for ")
print (" To capture the game information ")
# Capturing the player who chooses the  X and O  
player_current = player_first  
   
# Capturing the players' choice  
player_choice = {'X' : "", 'O' : ""}  
   
# Storing the two possible options available for the tic tac toe Python game 
options = ['X', 'O']  
   
# Storing the information that needs to be captured in the scoreboard  
score_board = {player_first: 0, player_second: 0}  
my_scoreboard(score_board)  

Giải trình

Theo đoạn mã trên, chúng tôi đã chọn người chơi hiện tại làm người chơi đầu tiên cùng với việc lưu trữ thông tin về các lựa chọn của cả hai người chơi dưới dạng từ điển, các tùy chọn có sẵn trong trò chơi dưới dạng danh sách và thông tin bảng điểm dưới dạng từ điển

Bước 9. Để thiết kế bảng điểm

Chúng tôi sẽ thiết kế Bảng điểm dưới dạng cấu trúc dữ liệu từ điển để theo dõi nhiều trò chơi mà người chơi chơi. tại đây, tên của người chơi sẽ đóng vai trò là khóa của từ điển và chiến thắng tương ứng của họ sẽ được ghi lại dưới dạng giá trị

Mã số

print ("Below is the code for ")

# Entering the player's names
if __name__ == "__main__":  
   
    print("The First Player's name")  
    player_first = input("Please mention your name: ")  
    print("\n")  
   
    print("The Second Player's name")  
    player_second = input("Please mention your name:  ")  
    print("\n")  

# As the scoreboard at the start will be zero  for both players 
score_board = {player_first: 0, player_second: 0} 


print (" To Design the Scoreboard ")
# Use the user-defined function Python to create a scoreboard to capture the scores made during the game and display this when the game ends.
def my_scoreboard(score_board):  
    print("\t--------------------------------")  
    print("\t         The SCOREBOARD for TIC TAC TOE PYTHON GAME       ")  
    print("\t--------------------------------")  
   
    list_of_the_two_players = list(score_board.keys())  
    print("\t   ", list_of_the_two_players[0], "\t    ", score_board[list_of_the_two_players[0]])  
    print("\t   ", list_of_the_two_players[1], "\t    ", score_board[list_of_the_two_players[1]])  
   
    print("\t--------------------------------\n") 
    
my_scoreboard(score_board)

đầu ra

________số 8_______

Giải trình

Chúng tôi đã sử dụng hàm do người dùng định nghĩa my_scoreboard(score_board) lấy score_board làm tham số trong đó chúng tôi xác định biến nắm bắt tên của người chơi trong danh sách bằng cách sử dụng. keys() trong Python, sau đó chúng tôi lập chỉ mục đó như một phần của score_board và hiển thị điểm tương ứng ở đây là 0 vì đây là điểm sẽ hiển thị khi trò chơi bắt đầu

Bước 10. Vòng lặp bên ngoài để làm cho trò chơi của chúng tôi trở nên linh hoạt và cho phép chơi nhiều trò chơi Tic Tac Toe Python

Vì trò chơi của chúng tôi đủ linh hoạt để cho phép người chơi chơi nhiều trò chơi tic tac toe Python, chúng tôi sẽ yêu cầu một vòng lặp khác cho cùng một vòng lặp, nơi chúng tôi sẽ cho phép người chơi hiện tại chọn điểm cho mỗi trận đấu. Menu lựa chọn cũng sẽ được hiển thị trong mỗi lần lặp lại trò chơi

Mã số

print ("Below is the code for ")
print ("  For creating an Outer loop to make our game flexible and allow multiple games of tic tac toe Python to be played")

# Using the while function in Python for adding multiple series of games until the players call it an exit.
while True:  
# Menu displayed to the players
     print(player_current, ", you get the chance to make the choice for the series of the Tic tac toe Python game:")  
     print("Please press 1 for X")  
     print("Please press 2 for O")  
     print("Please press 3 for Exit")  

đầu ra

print ("Below is the code for ")

print (" To update the inputs from a player into the game information of tic tac toe Python")

value[chance - 1] = player_current  
# By adding the above code, we update the status of the gameboard  
 
position_player[player_current].append(chance)  
# By adding the above code, we update the player's position on the grid.
0

Giải trình

Như đã thấy ở trên, chúng tôi đã triển khai vòng lặp while từ Python để hiển thị menu và cung cấp cho người trả tiền hiện tại là John ở đây để đưa ra lựa chọn cho loạt trò chơi Tic tac toe Python. Giờ đây, John có thể sử dụng hành động giữa ba tùy chọn Vượt 'X' hoặc Không 'O' hoặc thoát khỏi trò chơi bằng cách nhấn phím tương ứng

Bước 11. Để xử lý ngoại lệ và phân bổ lựa chọn biểu tượng cho người chơi hiện tại cho mỗi lần lặp lại trò chơi

Điều rất quan trọng là duy trì dòng chảy của trò chơi để Xử lý các ngoại lệ và Phân bổ lựa chọn biểu tượng cho người chơi hiện tại cho mỗi lần lặp lại của trò chơi, mà chúng ta sẽ sử dụng khối thử ngoại lệ trong Python như được hiển thị trong mã bên dưới. Lựa chọn của người chơi hiện tại sẽ được ghi lại và đánh giá để cho họ biết người chơi nào đã thắng trò chơi

Mã số

print ("Below is the code for ")

print (" To update the inputs from a player into the game information of tic tac toe Python")

value[chance - 1] = player_current  
# By adding the above code, we update the status of the gameboard  
 
position_player[player_current].append(chance)  
# By adding the above code, we update the player's position on the grid.
1

Giải trình

Trong đoạn mã trên, chúng tôi đã sử dụng khối ngoại lệ thử để xử lý bất kỳ ngoại lệ nào cho đầu vào the_choice. Sau đó, chúng tôi đã sử dụng câu lệnh if-else để tạo menu lựa chọn cho trình phát hiện tại để chọn từ

Theo lựa chọn của người chơi, dữ liệu sẽ được lưu trữ. Điều này rất quan trọng vì nó sẽ cho chúng ta biết người chơi nào thắng sau mỗi trận đấu

Bước 12. Thực hiện trò chơi Tic Tac Toe Python và cập nhật bảng điểm đồng thời

Bây giờ chúng ta đang tiếp cận phần cuối cùng của trò chơi tic tac toe Python, nơi chúng ta sẽ thực hiện một trò chơi độc lập giữa hai người chơi và giành chiến thắng cho người chơi. Và vì chúng tôi đã sẵn sàng bảng điểm của mình, chúng tôi cũng sẽ cập nhật nó khi trận đấu đầu tiên kết thúc.

Mã số

print ("Below is the code for ")

print (" To update the inputs from a player into the game information of tic tac toe Python")

value[chance - 1] = player_current  
# By adding the above code, we update the status of the gameboard  
 
position_player[player_current].append(chance)  
# By adding the above code, we update the player's position on the grid.
2

Giải trình

Như đã thấy ở trên, chúng tôi đã ghi lại thông tin chi tiết về người chiến thắng trong trò chơi tic tac toe Python trong một trận đấu. chúng tôi cũng đã sử dụng câu lệnh if trong Python để xác thực xem trận đấu đang hòa hay một trong những người chơi đang thắng trò chơi. Nếu trận đấu hòa, thì trận đấu mới sẽ bắt đầu lại khi trận đấu kết thúc với chiến thắng, điểm của người chơi được cập nhật và bảng điểm cũng được cập nhật

Bước 13. Hoán đổi cơ hội được đưa ra để chọn biểu tượng giữa người chơi đang chọn

Điều quan trọng là trao đổi cơ hội chọn biểu tượng giữa những người chơi sau khi mỗi trò chơi kết thúc. Trong khi chơi trò chơi, bắt buộc phải chuyển đổi cơ hội chọn điểm đánh dấu. Để làm như vậy, chúng tôi sẽ sử dụng các câu lệnh if-else trong Python để cho phép người chơi chuyển đổi cơ hội chọn dấu (X hoặc O) sau khi một trò chơi kết thúc để cả hai người chơi đều có cơ hội chọn giữa các biểu tượng

Mã số

print ("Below is the code for ")

print (" To update the inputs from a player into the game information of tic tac toe Python")

value[chance - 1] = player_current  
# By adding the above code, we update the status of the gameboard  
 
position_player[player_current].append(chance)  
# By adding the above code, we update the player's position on the grid.
3

Giải trình

Sử dụng câu lệnh if-else trong Python, chúng tôi đã tạo ra khả năng cho mỗi người chơi cơ hội bình đẳng để lựa chọn giữa Thập giá hoặc Không sau khi mỗi trò chơi kết thúc

Bây giờ, khi chúng ta đã hiểu chi tiết từng bước và logic đằng sau mỗi bước, chúng ta hãy biên dịch tất cả các chức năng đã tạo ở trên và thực thi trò chơi tic tac toe Python của mình để xem nó hoạt động và cũng để thưởng thức trò chơi do chính chúng ta tạo ra

Tic Tac Toe hoạt động như thế nào trong Python?

Tic tac toe Python, còn được gọi là Noughts and Crosses hoặc Xs and Os, là một trò chơi hai người chơi rất đơn giản trong đó cả hai người chơi có thể chọn bất kỳ biểu tượng nào giữa . Trò chơi này được chơi trên bảng lưới 3X3 và lần lượt từng người chơi có cơ hội đánh dấu biểu tượng tương ứng của mình trên các khoảng trống của lưới. . This game is played on a 3X3 grid board and one by one each player gets a chance to mark its respective symbol on the empty spaces of the grid.

Làm thế nào để tạo 2 người chơi tic tac toe Python?

Chúng ta cũng sẽ sử dụng mô-đun thời gian. .
Bước 1 – Khởi tạo Board. .
Bước 2 – Khởi tạo biến. .
Bước 3 – Vòng lặp trò chơi. .
Bước 4 – Tạo một chức năng để in bảng Tic-Tac-Toe. .
Bước 5 – Chấp nhận thông tin đầu vào từ người chơi của chúng tôi. .
Bước 6 – Đặt điểm đánh dấu vào vị trí mong muốn. .
Bước 7 – Giành chiến thắng logic. .
Bước 8 – Tie Logic

Bạn có thể tạo trò chơi bằng Python không?

Do đó, Python cũng là một ngôn ngữ lý tưởng để bạn bắt đầu cuộc phiêu lưu tạo trò chơi , bất kể bạn đã thông thạo ngôn ngữ này hay chưa. . Do cú pháp thân thiện với người mới của Python, các nhà phát triển có thể tập trung vào những điều cơ bản của lập trình trò chơi, chứ không phải sự phức tạp của chính ngôn ngữ này.