Kịch bản trò chơi Python Tic-Tac-Toe

Chạy trò chơi Tic-Tac-Toe đầu cuối bằng Python. Tìm hiểu cách quản lý trạng thái bảng, chuyển lượt và kiểm tra điều kiện giành chiến thắng.

Thử trong Trình chỉnh sửa

Tổng quan

Xây dựng trò chơi Tic-Tac-Toe là một bài tập cổ điển giúp củng cố cách biểu diễn trạng thái bảng ma trận, cấu trúc vòng lặp và logic so sánh có điều kiện.

Bảng được biểu diễn dưới dạng ma trận 3x3 (hoặc danh sách phẳng gồm 9 phần tử). Hai người chơi lần lượt đặt biểu tượng của họ ('X' hoặc 'O') trên lưới. Sau mỗi lần di chuyển, tập lệnh sẽ kiểm tra xem người chơi có ba biểu tượng trùng khớp trên một hàng, cột hoặc đường chéo hay không.

Việc triển khai này bao gồm một vòng lặp trò chơi chuyển đổi trạng thái của người chơi đang hoạt động, chấp nhận các vị trí tọa độ và tự động dừng khi gặp điều kiện thắng hoặc hòa.

Đầu ra mã & thực thi

Một công cụ trò chơi Tic-Tac-Toe dòng lệnh đầy đủ chức năng chạy phiên mô phỏng.

def print_board(board):
    for i in range(3):
        row = " | ".join(board[i*3:(i+1)*3])
        print(f" {row} ")
        if i < 2:
            print("---+---+---")

def check_win(board, player):
    win_states = [
        [0, 1, 2], [3, 4, 5], [6, 7, 8], # Rows
        [0, 3, 6], [1, 4, 7], [2, 5, 8], # Columns
        [0, 4, 8], [2, 4, 6]             # Diagonals
    ]
    return any(all(board[pos] == player for pos in state) for state in win_states)

def play_tic_tac_toe():
    board = [str(i+1) for i in range(9)]
    # Simulated sequence of moves (X and O alternating)
    moves = [4, 0, 8, 2, 7, 6, 3] 
    
    print("Welcome to Tic-Tac-Toe!\n")
    print_board(board)
    print("\nSimulating Gameplay...")
    
    current_player = 'X'
    for move in moves:
        if board[move] not in ['X', 'O']:
            board[move] = current_player
            print(f"\nPlayer {current_player} places on {move+1}:")
            print_board(board)
            
            if check_win(board, current_player):
                print(f"\nPlayer {current_player} wins the game!")
                return
                
            current_player = 'O' if current_player == 'X' else 'X'
            
    print("\nGame ends in a draw!")

play_tic_tac_toe()
Đầu ra thiết bị đầu cuối
Welcome to Tic-Tac-Toe!

 1 | 2 | 3 
---+---+---
 4 | 5 | 6 
---+---+---
 7 | 8 | 9 

Simulating Gameplay...

Player X places on 5:
 1 | 2 | 3 
---+---+---
 4 | X | 6 
---+---+---
 7 | 8 | 9 

Player O places on 1:
 O | 2 | 3 
---+---+---
 4 | X | 6 
---+---+---
 7 | 8 | 9 

... (moves continue)

Player X wins the game!

Triển khai từng bước

  • Vòng lặp giao diện dòng lệnh tương tác
  • Nguyên mẫu định tuyến minimax trí tuệ nhân tạo đơn giản
  • Học ánh xạ tọa độ mảng danh sách 2D

Câu hỏi thường gặp

Làm thế nào tôi có thể chơi với máy tính?

Để triển khai đối thủ AI, bạn có thể sử dụng mô-đun `random` của Python để chọn các ô trống trên bảng hoặc sử dụng thuật toán Minimax để tạo ra đối thủ bất khả chiến bại.

Làm cách nào để xóa màn hình đầu cuối giữa các lượt?

Bạn có thể nhập `os` và gọi `os.system('cls' if os.name == 'nt' else 'clear')` để xóa các khung nhìn thiết bị đầu cuối tiêu chuẩn.

Chủ đề liên quan