Chủ Nhật , Tháng Chín 24 2017
Trang chủ / Chuyên đề lập trình / Lập trình Game / Game caro c# có xử lý AI nâng cao

Game caro c# có xử lý AI nâng cao

Thuật toán này bổ sung cho khóa học: Lập trình c# nâng cao – cờ caro có xử lý AI.

I. Giới thiệu bài toán:

Cờ ca rô là một loại cờ cổ xưa của Trung Quốc, là một trò chơi bàn cờ theo chiến thuật trừu tượng.

Cờ ca rô trong tiếng Hàn Quốc là omok, tiếng Trung là wǔzǐqí, trong tiếng Nhật là gomoku narabe và trong tiếng Anh là Connect 5

Hai bên lần lượt đi các nước cờ. Người thắng là người có được 5 quân liên tục theo hàng ngang, dọc hoặc chéo.

II. Giao diện và cấu trúc chương trình


– Chương trình có các chức năng:

    • New game: Mặc định trong lần chơi đầu tiên máy sẽ đi trước, sau này ai thắng sẽ đi sau.
    • Undo
    • Save, Load.

– Bàn cờ được tạo thành bằng cách vẽ các đường thẳng ngang dọc trên form.

– Hình ảnh các quân cờ được load từ file png.

– Các button là các label có hình nền thay đổi khi hover cũng như click chuột.

– Chương trình gồm các class

    • CaroChess.cs: chứa các biến, phương thức phục vụ cho việc xử lí các thao tác đánh cờ, kiểm tra kết thúc, xử lí AI (tính hàm đánh giá, xác định nước đi cho máy), save và load…
    • Graphic.cs: vẽ bàn cờ và quân cờ.

III. Thuật toán AI

Hàm đánh giá:

Có 2 ma trận điểm:

 

Tiến hành quét một block 5 ô theo 4 hướng là dọc, ngang, chéo lên, chéo xuống, đếm số quân cờ mỗi bên và tiến hành cộng điểm cho các ô trống khi trong block 5 ô đó chỉ có toàn quân ta, hoặc toàn quân địch.

    • Nếu có n quân ta thì các ô trống được cộng Ascore[n] điểm.
    • Nếu có n quân địch thì các ô trống được cộng Dscore[n] điểm.

Vd:

x x x

Hai ô trống sẽ có Ascore[3] = 81

Như thế điểm các ô trống sẽ được cộng dồn (do một ô được quét 5 lần mỗi chiều). Điều này có ý nghĩa trong việc xác định các nước đi ăn đôi, ăn ba.

Hàm tìm nước đi cho máy:

Đầu tiên đánh giá bàn cờ và chọn ra 3 ô trống có điểm cao nhất, tiến hành đánh thử.

Trong mỗi lượt đánh thử cũng tiến hành đánh giá bàn cờ và chọn ra 3 ô trống cao điểm nhất của người để đánh trả lại. Độ sâu tối đa là 11.

Nếu tìm thấy nước đi dẫn tới chiến thắng thì đánh theo nước đó.

Không thì đánh vào ô có điểm cao nhất!

//

Tải source code game cờ caro winform c#

 

Password unlock: khanhtrinh

http://www.mediafire.com/?l68i9xjy6yi6tqz

Nhận xét của bạn

nhận xét

Tác giả Charity Girl

Charity Girl

Xem thêm

Khóa học game bắn máy bay Unity 3D

Như các bạn đã biết UNITY là một ENGINE GAME đa nền tảng được phát …

Trả lời