Hướng Dẫn Lập Trình Game Tic Tac Toe (Cờ Caro 3×3) Trên Scratch
Bạn muốn tự tay tạo ra một trò chơi trí tuệ kinh điển? Trong bài viết này, chúng ta sẽ cùng phân tích và xây dựng game Tic Tac Toe dựa trên dự án thực tế. Trò chơi sử dụng logic biến số và thông điệp (broadcast) để điều khiển hai người chơi: Red (Đỏ) và Blue (Xanh).
1. Phân tích cấu trúc dữ liệu và biến số
Để game vận hành, dự án sử dụng các biến quan trọng sau:
- Biến vị trí (1 đến 9): Lưu trữ trạng thái của từng ô cờ (trống, “red”, hoặc “blue”).
- Lượt đi: Xác định ai là người đang thực hiện nước đi (“red” hoặc “blue”).
- Winner: Lưu trữ kết quả cuối cùng để xác định người thắng cuộc.
2. Thiết lập sân khấu (Stage) và Logic bắt đầu
Khi nhấn vào Lá cờ xanh, hệ thống sẽ thực hiện các bước:
- Khởi tạo: Xóa các giá trị cũ và thiết lập các ô từ 1 đến 9 về trạng thái mặc định (0).
- Chọn lượt đi ngẫu nhiên: Sử dụng toán tử
pick random 1 to 2để quyết định Red hay Blue đi trước. - Phát tin (Broadcast): Gửi thông điệp “Lượt đi của Red” hoặc “Lượt đi của Blue” để kích hoạt các Sprite tương ứng.
3. Lập trình logic cho các Sprite (Ô cờ)
Mỗi ô cờ là một Sprite độc lập hoặc sử dụng bản sao (Clone). Logic chính bao gồm:
- Khi click vào ô: Kiểm tra xem ô đó đã có người đánh chưa. Nếu chưa, dựa vào biến Lượt đi để thay đổi trang phục (Costume) sang màu tương ứng.
- Cập nhật dữ liệu: Gán giá trị “red” hoặc “blue” vào biến vị trí tương ứng (ví dụ: biến “1” nếu click vào ô đầu tiên).
4. Hệ thống kiểm tra thắng thua (Check Win)
Đây là phần quan trọng nhất. Dự án sử dụng các thông điệp broadcast để kiểm tra các điều kiện thắng:
- Các tổ hợp thắng: Kiểm tra theo hàng ngang, hàng dọc và đường chéo (ví dụ: Ô 1=2=3, 4=5=6, 1=5=9…).
- Xử lý kết quả: * Nếu Red thắng: Phát tin
red wins.- Nếu Blue thắng: Phát tin
blue wins. - Nếu tất cả các ô đã đầy mà không ai thắng: Phát tin
tie(Hòa).
- Nếu Blue thắng: Phát tin
5. Chức năng Restart (Chơi lại)
Khi nhận được thông điệp restart game, tất cả các biến sẽ được reset về 0, trang phục các ô cờ trở về trạng thái trống, và một vòng chơi mới bắt đầu từ bước 2.





