1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO BÀI TẬP LỚN MÔN TRÍ TUỆ NHÂN TẠO Đề tài Cờ Caro

15 2,3K 20

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 641,41 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu • Cờ Caro là một trong các trò chơi phổ biến hiện nay.. Từ thủa ban đầu con người thi đấu trên giấy, trên bề mặt viết kẻ được rồi dần dần tiến tới con người lập trình thi đấ

Trang 2

BÁO CÁO BÀI TẬP LỚN

MÔN TRÍ TUỆ NHÂN TẠO

Đề tài: Cờ Caro

Giảng viên hướng dẫn: Nguyễn Thế Cường

Nhóm sinh viên thực hiện lớp CNT50ĐH2:

Đặng Thị Lan

Trang 3

Giới thiệu

• Cờ Caro là một trong các trò chơi phổ biến hiện nay Từ thủa ban đầu con người thi đấu trên giấy, trên bề mặt viết

kẻ được rồi dần dần tiến tới con người lập trình thi đấu trên máy Cờ Caro thể hiện tính chất đối kháng cao trong thi đấu game đòi hỏi suy nghĩ của người chơi

• Chương trình có chế độ chơi giữa người và máy, khi chạy

sẽ có bàn cờ được hiện ra, trong quá trình chơi sẽ có

thông báo máy(người) thắng cuộc

Trang 4

Mô tả

• Không gian bàn cờ chơi sẽ có kích thước là 15 hàng x 15 cột (được miêu tả chi demo chương trình)

• Khi tham gia chơi người và máy thay phiên nhau đi nước

đi của mình vào ô trống trên bàn cờ bằng ký tự đã quy định là O với máy( đi sau), X với người chơi( đi trước)

• Cuộc chơi sẽ kết thúc khi mà bên nào đánh được 5 ô liên tiếp nhau theo: Hàng, Cột, Hai đường chéo; mà không cần quan tâm rằng chúng có bị chặn hai đầu hay không

Trang 5

Ví dụ

Trường hợp máy thắng người chơi Trường hợp người chơi thắng máy

Trang 6

Các thuật toán xử lý

• 1 Đánh dấu ô trong không gian chơi

• 2 Duyệt tìm kiếm tốt nhất đầu tiên

Trang 7

Các thuật toán xử lý

• 1 Đánh dấu ô trong không gian chơi

- Khi người chơi kích vào một ô trống bất kỳ trên bàn cờ sẽ được đánh dấu tại ô đó sẽ gán giá trị là -2 , và tại vị trí

những ô đã đi thì người chơi không kích đè nước đi của mình được

- Tương tự như đối với người thì máy cũng có cách đánh

và gán giá trị tại ô đã đi là -1 .

Trang 8

TRÒ CHƠI CỜ CARO

Trang 9

 Biến bitmap

Dim ResWidth As Integer = 950

Dim ResHeight As Integer = 550

Const TitleSize = 32

 Biến của Graphics

Dim BBG, G, Graphic, L As Graphics

Dim BB, BBM As Bitmap

Dim r, e, h As Rectangle

Dim random As New Random

 Biến đếm giây

Dim tSec As Integer = TimeOfDay.Second

Dim tTicks As Integer = 0

Dim MaxTicks As Integer = 0

 Biến của chương trình chạy

Dim Isrunning As Boolean = True

Dim EndGame As Boolean = True

 Giới thiệu về các biến hệ thống

Trang 10

 Biến xác định vị trí quân đi trên bàn cờ Quy ước X hàng, Y cột

Const Max = 15

Dim Map(Max, Max) As Integer

Dim Undo As New Stack

Dim mMapX As Integer = 20

Dim mMapY As Integer = 20

 Biến

Dim MouseX As Integer

Dim MouseY As Integer

Dim MapX As Integer

Dim MapY As Integer

Dim mcX As Integer

Dim mcY As Integer

 Biến về người chơi

Dim CountMay, CountNguoi

Dim Diem_PT = {0, 20, 55, 120, 400}

Dim Diem_TC = {0, 22, 60, 130, 400}

Trang 11

 Hàm khởi tạo đầu tiên CreateGraphics

Có tác dụng: Để sử dụng những đối tượng đồ họa trong thư viện System.Drawing

ta gọi thông qua hàm này

FillRectangle: tô màu cho ô trống trong bàn cờ

DrawRectangle: tô màu đường kẻ bàn cờ

Đoạn chương trình khởi tạo như sau:

Const LocalX = 220

Const LoCalY = 140

Dim ToaDo_Quan_X = 0, ToaDo_Quan_X2 = 0

Dim ToaDo_Quan_Y = 2, ToaDo_Quan_Y1 = 0

Dim VT(30)

Dim rand

Trang 12

 Ta tạo ra ô bàn cờ như sau:

 Bàn cờ kích

thước [15,15] Ngoài ra tạo 3 button:

Trang 13

 Khởi tạo nước đi đầu tiên của bàn cờ

Private Sub DrawGraphics()

mMapX = 0, mMapY = 0

For X = 0 To 14 'chi so cot

For Y = 0 To 14 'chi so hang

r = New Rectangle(X * TitleSize, Y * TitleSize, TitleSize,

TitleSize)

G.FillRectangle(Brushes.Tan, r) 'to mau cho trong o ban co

G.DrawRectangle(Pens.Black, r) 'to mau but ke duo

If Map(mMapX + X, mMapY + Y) = -2 And Map(mMapX + X, mMapY + Y) <> -1 Then

e = New Rectangle(TitleSize * ToaDo_Quan_X, TitleSize * ToaDo_Quan_X2, TitleSize, TitleSize)

G.DrawImage(BBM, r, e, GraphicsUnit.Pixel)

If Map(mMapX + X, mMapY + Y) = -1 And Map(mMapX + X, mMapY + Y) <> -2 Then

Trang 14

e = New Rectangle(TitleSize * ToaDo_Quan_Y, TitleSize *

ToaDo_Quan_Y1, TitleSize, TitleSize)

G.DrawImage(BBM, r, e, GraphicsUnit.Pixel)

End If Next Next

If mcX <> 0 Then

r = New Rectangle(MouseX * TitleSize, MouseY * TitleSize, TitleSize, TitleSize)

h = New Rectangle(TitleSize * ToaDo_Quan_X, TitleSize * ToaDo_Quan_X2, TitleSize, TitleSize)

Graphic.DrawImage(BBM, r, h, GraphicsUnit.Pixel)

End If

BBG = Me.CreateGraphics

BBG.DrawImage(BB, 0, 0, ResWidth, ResHeight)

G.Clear(Color.Wheat)

End Sub

Trang 15

 Mô tả nước đi của quân cờ

Ngày đăng: 12/04/2015, 14:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w