Thủ tục Minimax

Một phần của tài liệu Tìm hiểu về chiến lược tìm kiếm trong các trò chơi đối kháng và ứng dụng vào trò chơi 2048 (Trang 32)

Để ha ̣n chế không gian tìm kiếm , khi xác đi ̣nh nu ̛ớc đi cho Trắng ta ̣i u , ta chỉ xem xét cây gốc u ta ̣i độ cao h nào đó . Áp du ̣ng thủ tu ̣c Minimax cho cây trò chơi gốc u, độ cao h và sử du ̣ng hàm đánh giá để xác đi ̣nh giá tri ̣ cho các lá của cây.

Procedure Minimax(u, v, h); begin

val ←-∝;


for mỗI w là đỉnh con của u do 
if val(u) <= MinVal(w, h-1) then { val ← MinVal(w, h-1); v ← w; } end; 
---

Function MinVal(u, h); {hàm xác đi ̣nh giá tri ̣ cho các đỉnh Đen} begin

if u là đỉnh kết thúc or h = 0 then MinVal(u, h) ← eval(u)

else MinVal(u, h) ← min{MaxVal(v, h-1) | v là đỉnh con của u} end;

---


Function MaxVal(u, h); { hàm xác đi ̣nh giá tri ̣ cho các đỉnh Trắng} begin

if u là đỉnh kết thúc or h =0 then MaxVal(u, h) ← eval(u)

else MaxVal(u, h) ← max{MinVal(v, h-1) | v là đỉnh con của u} end;

Trong thủ tục trên thì u là trạng thái hiện tại, v là trạng thái được chọn cho nước đi tốt nhất từ u, h là độ cao của nút u đang xét.

Một phần của tài liệu Tìm hiểu về chiến lược tìm kiếm trong các trò chơi đối kháng và ứng dụng vào trò chơi 2048 (Trang 32)