2022T TTNT 11 Lab02

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

BÀI LAB02

Trần Văn Nhật Kin-20it967


A) Cài đặt thuật toán Quay lui để giải quyết bài toán “Tô màu
bản đồ”

Các bước Tô màu biểu đồ bằng Thuật toán Bẻ khóa ngược:


1. Màu sắc khác nhau:
A. Xác nhận xem có hợp lệ để tô màu đỉnh hiện tại với màu hiện tại hay
không (bằng cách kiểm tra xem có bất kỳ đỉnh nào liền kề của nó
được tô cùng màu hay không).
B. Nếu có thì hãy tô màu và nếu không thì hãy thử một màu khác.
C. Kiểm tra xem tất cả các đỉnh có màu hay không.
D. Nếu không thì chuyển đến đỉnh không tô màu liền kề tiếp theo.
2. Nếu không có màu nào khác thì hãy backtrack (tức là bỏ màu đỉnh có
màu cuối cùng).
Ở đây backtracking có nghĩa là dừng các lệnh gọi đệ quy hơn nữa trên
các đỉnh liền kề bằng cách trả về false. Trong thuật toán này, Bước 1,2
(Tiếp tục) và Bước 2 (Bẻ khóa ngược) đang khiến chương trình thử tùy
chọn màu khác nhau.
Tiếp tục - thử một màu khác cho đỉnh hiện tại.
Backtrack - thử một màu khác cho đỉnh có màu cuối cùng.
CODE:
KẾT QUẢ:
B) Cài đặt thuật toán Max-min cho trò chơi “Tic tac toe”

 Tạo bảng bằng mảng 2 chiều và khởi tạo mỗi phần tử dưới dạng
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 ta sẽ sử dụng dấu gạch ngang. '-'.
 Viết một hàm để kiểm tra xem bảng đã được lấp đầy hay chưa.
 Lặp lại trên bảng và quay lại falsenếu bảng chứa một dấu trống hoặc
nếu không thì quay lại true.
 Viết hàm để kiểm tra xem người chơi đã thắng hay chưa.
 Chúng ta phải kiểm tra tất cả các khả năng mà chúng ta đã 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 hàm 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 khi họ đang chơi.
 Viết một hàm để bắt đầu trò chơi.
 Chọn ngẫu nhiên lượt đầu tiên của người chơi.
 Viết một vòng lặp vô hạn ngắt khi trò chơi kết thúc (thắng hoặc hòa).
+Hiển thị bảng để người dùng chọn vị trí cho nước đi tiếp theo.
+Yêu cầu người dùng nhập số hàng và 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 đã thắng trò chơi, sau đó in thông báo chiến
+thắng và phá vỡ vòng lặp vô hạn.
+Tiếp theo, kiểm tra xem bảng đã được lấp đầy hay chưa.
+Nếu bảng được lấp đầy, sau đó in thông báo 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.
CODE:
KẾT QUẢ:

You might also like