Thông tin tài liệu
BÁO CÁO BÀI TẬP LỚN
!
"# $%&'()*
+# ,!-.,/*
0# 1&2
3# 4&2
(5 !6789(,!&6:
"
Mục lục
+
Lời mở đầu
&; <= *)>?@A
! B*CD2;?EDF'G#HF
I6 /# 1FJ?KL?@M2?NFO
F?>D/*F7#FFB?>!5
I):D5 P#KQR=/
)P 7?IQF3 /)S=F*TD?>5
G)#FL*KI)1CM) )*=/)
P S=F*TD #UK!L
6>.6?6V)/)QR=;6LQW
.SQ7X#
$K? 7=?PKG
#!M)1Y>)YZK'QQK;
LX/?6V'K*J ?))[#
0
I. Giới thiệu đề tài “Game Caro”
(\K+6:;I6]M;I6]M^#
&6:QWF]F6V?6?)M6:<[1!ID
P$_61`$a#
Luật chơi:
-FM?6V?)67#&6:K>?) DXYb
!D%F?K6?6V?)#
c:Y2LYI6:KdMeF!f2*
_;OEga#
U67?FDY67"dP"d
3
II. Thuât toán MiniMax và thuật toán cắt cụt
Alpha-Beta
1. Thuật toán MiniMax
# Nguyên lý:
• K+6:F P#
• I2F6V.6FI4)67?L*?6?2)
?.#
• 2F6V[hDN56A_*=Ia )67?[i$
j 6VF#
• h]OI2F6VL*?K)N[=f!
j 75QRFi$?)67?.6#
• 2F6V?6VP)?NDe Pg))Ni$ih?. 7
4LD>%c:#
• hO)67?6:< 7)Ni$ih?_i$
O)67?< 7)Ni$ihf>#
D# Áp dụng vào game Caro:
$6:]M?K c6P;6:]M^?K
c6#>M2?N67?f2*;PI[=?M
\+Pk F_a?>l67?f2*M;k F_a?>l
67?f2*M^#>5[5/?M;7
?IQ[5/De3#
! " #$%" & '
&()
*
d
*
(
! " #$%" & '
&()
*
*
&P)?N)Y2Lterminal_test_a
&K =P)?NPc:KY2LYYIM
?6V?)! #&?I6Q
• m N!M;Y>);O;g_ =
Y>5QRM?) F;
67D!)?2YE*M^E61mF;f2*=
67D!*56:?>P)?NQ.MF!f2*
a#
• $2Q.M_E^aF!f2*Fd15F)N;6VF5
)NnFQ#
2. Thuật toán cắt cụt alpha-beta
2F6VP 7?IQ21Q.?o[c:*5
Pg 8cXF7 7p`0#q?))?o7?IQ;/)
P?cZ*5?))X5)?o[. 7?IQ#
!;*6:*)*S=F*TD*g*SDZ')Y]
2 ?))?o#96:*)*F5D7Q.?o*5Pg
Y56A?2Y2M5?))?o#r6A(5QR?>
?A?oS;?oKF ?@?6V?))#(5QR
s
[?oFD;DKF?@?6V?)); [DF61
Q
P
P
q?KK)N?oSXF)N[;)N[?oD
XF)N[ #U?K;2 F_ap F_ aY]?P.?>?))
?o' 8Y56A?2?))?o#&K)Y);K
>SDZ.#,/*F/6:6V*F?o;6
V*2 F_at F_ auSDZ.#>?EYv/;
?. 7)?oe!?6?m.7?o;QR=Q.
w?>F)NF7X))N[)?o?@?))[I
?oS;Q.x?>F)NZX))N[)?o
?@?))[I?o#
%+
! " #$%" & '
&()%+
*
+
%%
y
D
*
%+
(
! " #$%" & '
&()%+
*
,%
++
*
3. Hàm đánh giá
&?))FIMO Pc:#&
L*?>)[D?>m?KPc:#HP
F6V)V*FJ;P)QWL*.K?))P)
)D?>?667?:#
;?>G?>)D?6)f!Q
• 6V*SSS;?>IQWFzi0+#hkHh,{|?.
7 Ti0+#hkHh,{|?. 7^#
• 6V*K670;?>IQWFz0}}?. 7 T0}}?. 7
^
• 6V*K673;?>IQWFzs}}?. 7 Ts}}?. 7
^
~
III. Cài đặt chương trình
6:1\)F7*6Q
1. Lớp Board
,F7*?>F6F)[D
Biến:
• ^,{$;•^€Q.I [D
• 9))K>K[IM_;^;6?)E
YV*Fa#
• DFI5F6F))[)M#
+ +/
Hàm:
• (9h_a,X)[MIO?IP)?#
• iQ^*_a)?NPI NP)?N?@KM?6:
?)6#
• h9_a!IM D#
• iQ€_aq>)[D?@Y2L6#
•
2. Lớp CaroAI
Biến:
• 01203456789?IQ[5/P
• Q;*QQQ.LM Q.F6V*g*Q
Q)]QR=5/P_B?>?))/)a#
• *9;*F9B?>P)?NY>M[6:
)_^a#
Hàm:
• P&F*_aP)?N2!IM )
[DKF)A)Y2L
Y;2Y1QR=5/P#
• P_a?E5/P#
:002%%++
0
%,;<182
=:
<>?+@ AB 7
</
*
+=:
% %<$C%
D00 %%)%+E0
"}
[...]... trạng thái bàn cờ setScrore(): gán điểm của trạng thái bàn cờ Add(): 12 IV Giao diện chương trình 1 Giao diện khi vào game 2 Giao diện khi chơi 13 3 Giao diện khi chiến thắng 14 V Kết luận Qua quá trình học môn trí tuệ nhân tạo và qua việc thực hiện đề tài này, chúng em đã hiểu thêm hơn về việc ứng dụng trí tuệ nhân tạo trong việc giải quyết các vấn đề trong thực tế Game cờ caro là một game ứng dụng... best.add(child); best.addAll(result2.gameNodes); } if (beta . 7=?PKG #!M)1Y>)YZK'QQK; LX/?6V'K*J ?))[# 0 I. Giới thiệu đề tài Game Caro (K+6:;I6]M;I6]M^# &6:QWF]F6V?6?)M6:<[1!ID P$_61`$a# Luật. 7)Ni$ih?_i$ O)67?< 7)Ni$ihf># D# Áp dụng vào game Caro: $6:]M?K c6P;6:]M^?K c6#>M2?N67?f2*;PI[=?M +Pk. D# • iQ€_aq>)[D?@Y2L6# • 2. Lớp CaroAI Biến: • 01203456789?IQ[5/P • Q;*QQQ.LM
Ngày đăng: 01/04/2014, 02:20
Xem thêm: Đề tài: Xây dựng game cờ Caro pot, Đề tài: Xây dựng game cờ Caro pot, Thuật toán cắt cụt alpha-beta, III. Cài đặt chương trình, IV. Giao diện chương trình