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
Vũ Thị Hiển
Vũ Văn Đích
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.
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
- 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.
TRÒ CHƠI CỜ CARO
.
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
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 rand
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:
New Games
UnDo
Exit
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
.
e = New Rectangle(TitleSize * ToaDo_Quan_Y, TitleSize *