Tải bản đầy đủ (.doc) (34 trang)

báo cáo môn trí tuê nhân tạo áp dụng thuật toán alpha-beta cắt tỉa trong chương trình cờ vua

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 34 trang )



──────────────
BÀI TẬP LỚN

ĐỀ TÀI : GAME C VUA
 !"# $%&'(%)*+%&,-.&/01%2
3 %&# $%4&56& 7%
&89%&:6 ;<=<=>;=
)?-@%A?-.&'B%) ;<=<;<<=
C,%3D/4 ;<=<=EFG
 H$/ !4 ;<=<==G=
I"1%&J%) ;<=<=FK>
"I%/ )&LJ ;<=<=KE;
&M0=;

IN O4&!%)P%10;<=E
MỤC LỤC




 !"#
$%!&'()*!'(!+",)-.
/0*0!+",)-1
23!4 5)-672-5)8!+",)-9,2,:;<=>,1
?8'@;A!;A#1
!?8'@45B
CDE09!!9F'G,(55C
/ H7*07
I


J45K?A!LM
!9F'G,(55C),D)-!'(N
O7'P)P
04+Q!
04+Q!.
04+Q!1
.'(9!RE<!+",)-S
T04 
UO
/VW/OJTOXY

I. LỜI MỞ ĐẦU
)I-%J-#( %Q%6R%)%)&74&R%)4 %SJ%)%)I-6I%)T&!44C U%0/%&0V#( W5
T&!44C U%X&"J&Y66R%)%)&7ZC"%)4&[ X\&N %&]T%)I%&6R%)%)&74&R%)4 %
SM%)#J 4C^_?J%4CY%)X&R%)4&U4& `?Sa #( W5T&!44C U%X %&4`6bJSc4%'(6ZI
0N4T&,%_?J%4CY%)dI# 76!T*e%)4Cf4?7%&g%4/"#I"%Q%45SN%)&MJ#I4'*?-
6J"%&'& 7%%J-%&'C"h"44&R%)0 %&O%)I%&6R%)%)& 7T45SN%)&MJ#IS[ Wa%)Z
$%6/%&SM'%)*e%)T&!44C U%)J0idI0N44C"%)%&'%)%)I%&!T*e%)T&jh `%
6!64&I%&45?4C"%)4Cf4?7%&g%4/"Z]-4Cf4?7%&g%4/"dI)9k
&?]4%)84Cf4?7%&g%4/"lC4 m 6Jd%4iddi)i%6inS'o6p"%&iJC4&d-S'JCJ4C"%)
&N 4&2"qAJC4&"?4&#I"0rJ&s%10=KGFZt6MCc4%& Q?Su%&%)&LJX&!6%&J?#Q
4Cf4?7%&g%4/"Z( 4Cf4?7%&g%4/"O0!-4f%&6M4&U) vT6"%%)'[ ) 2 _?-`4
%&8%)hI 4"!%0N46!6&4&R%)0 %&%&c4Z)I-%J-O4Cf4?7%&g%4/"St#ISJ%)&w
4Co%& Q?4C"%)6!6:%)*e%)&I%)%)I-dI06&"0!-0M6h `4W?-%)&L&J-) 2 _?-`4
#c%SQ4&J-6&"6"%%)'[ Oh `4) J"4 `Thx%)%)R%%)8#I4 `%)%M yyJWV490
& U?0N4WaT&'B%)T&!T) 2 _?-`4#c%SQ6Bh2%Ze4&UdI6I Sz44C^6&B 6[#?J
W{*e%)0N4Wa4&?]44"!%S'o6) ( 4& 7?4C"%)0R%&Y6Z
&v%)i0| %620B%4&,-.&/01%2 O4&R%)_?JhI ) 2%)6bJ4&,-6&v%)
i06M4&U&"I%4& 7%4a4&B%6&'B%)4C9%&6bJ09%&
&M0W %&# $%

&89%&:6
)?-@%A?-.&'B%)
C,%3D/4
H$/ !4
I"1%&J%)
"I%/ )&LJ

II. NỘI DUNG
1. Giới thiệu bài toán
[#?J4$%4 `%)J%&dIl&iWWnZ[#?JdI0N44C^6&B 6M6& `%d'o6#IdI0N44C^
6&B 4Cf4?7T&jh `%%&c4& 7%%J-*"SM6M4&U%M SMdI0N44C^6&B Cc4T&:64/T
%)'[ 6&B X&R%)4&US"!%S'o6&`4%'(6S %MdI0N46"%WaCc4d(%Z
a. Luật chơi :
N4hI%6[)}0F>R4C$%SMWV)}0=F_?g%Si%#I=F_?g%4C~%)S'o6Wq&8?
hq ;%)'[ 6&B 
!6_?g%6[6M%'(6S X&!6%&J?

- •i•iS &J-1%_?g%4&i"S'[%)%)J%)&J-6N4*Y6O%M6M4&US 4€S,?hI%
6[S`%&`4hI%6[X&R%)) ( &/%h'(6S #( S Q?X 7%X&R%)hu62%
- t S`%S•%&Sa 6bJ6&8%&]4;E4C$%hI%6[
- 'o%)'o%)4C~%)6&•S S'o66!6R0I?4C~%)#I4'o%)Si%4&9%)'o6d/ Z
4'o%)S 4&i"S'[%)6&‚"#IX&R%)) M &/%%'(6S #( S Q?X 7%X&R%)hu62%Z
- ]?dI_?g%6[d %&&"/4%&c44C$%hI%6[%M6M4&UdIW5X`4&oT6bJ=_?g%
|i#I;_?g%4'o%)6M4&US %)J%)*Y6&J-S'[%)6&‚"
- ?JMdI_?g%_?J%4CY%)%&c4%`?0c4%M6" %&'h/%St4&?JZ%M6M4&US
4&i"%)J%)*Y6O6&‚"%&'%))f&/%0N4%'(6S 0J4&R 
- a4S 4&ƒ%)4€%)h'(60N4ZC $%)%'(6S S,?4 $%6M4&US ;%'(6#I1%
6&‚"Z
b. Yêu cầu đặt ra khi cài đặt chương trình
- R42S'o6d?]46&B 4&R%)*e%)4C"%)6[#?J

- 'J4Cf4&R%)0 %&#I"6&'B%)4C9%&q0:66J"%&c46M4&U
- a '?&MJ6&'B%)4C9%&OS!T:%)S'o6# 76) ( &/%#Q0z44&[ ) J%4C"%)X&
6&B l&R%)SU%)'[ 6&B T&2 So _?!dg?nZ
-  J"* 7%6&'B%)4C9%&q0:6S!T:%)S'o6-$?6,?hI 4"!%l&R%)_?!6&v
4CY%)O4C€X& 6MSb4&[ ) J%nZ
.
2. Thiết kế chương trình
a. Mô thức lập trình , mô hình phát triển chương trình và ngôn ngữ sử dụng
- Mô thức lập trình áp dụng :
.dI0R4&:6d]T4C9%&S'o66&v%)i0|g-*5%)6&'B%)4C9%&Z.&J-6^%
h `4S`%dI0R4&:6d]T4C9%&&'(%)Sa 4'o%)Z&!6#( d]T4C9%&6c?4Cv64C"%)
Z.0qCN%)4&$00N4WaX&! % 70%&'Sa 4'o%)Od(TOSM%))M OX`
4&€JOSJ&9%&ZZZI4&U& 7%0N4Wa'?S U0%j h]4%&'4f%&4C€?4'o%)O4f%&
SM%))M O4f%&SJ&9%&O4f%&X`4&€JZ
- Mô hình phát triển chương trình :
r%)#( 0R4&:6.ZdI0R&9%&d]T4C9%&S'o66&v%)i0*r%)4C"%)
4& `4X`6&'B%)4C9%&ZS'o6|i0%&'T&'B%)T&!T4& `4X`4&I%&6R%)
4C"%)T&'B%)T&!T4& `4X`&'(%)Sa 4'o%)
# `44~46bJ"*id„ i…„"%4C"d dIT&'B%)T&!T4& `4X`6& J%&†:%)
*e%)4&I%&ET&,%"*id‡"%4C"d‡ i…4C"%)SMO"*idT&,%0R&9%&hJ"
)}0Sa 4'o%)&J-4]T&oT6!6Sa 4'o%)h U?* @%*8d 7?6&"6&'B%)4C9%&Z
"%4C"dS'o6)Y %&'T&,%|{dˆOS Q?X& U%4"I%hNd") 6O&"/4SN%)) J"* 7%
4'B%)4!6#( 4&J"4!66bJ%)'[ *r%)OS}%)4&[ 6]T%&]4*8d 7?4&i"S,?#I"
%&]%S'o6#IS Q?X& U%4&f6&&oT4&i"-$?6,?6bJ%)'[ *r%)Z i…S'o66"
dIT&,%) J"* 7%%)'[ *r%))}0S'J*8d 7?CJ0I%&9%&O6?%)6cT) J"* 7%
6&"%)'[ *r%)4&J"4!6#( 6&'B%)4C9%&Z
- Ngôn ngữ javadI%)R%S'o66&v%)i0W{*e%)4C"%)6&'B%)4C9%&ZpJ#JdI
0N4%)R%%)8d]T4C9%&&'(%)Sa 4'o%)Z( pJ#J6M'?S U0Cc40/%&SMdI
4f%&SJ%Q%S Q?SM6M%)&LJ0N46&'B%)4C9%&# `4hx%)%)R%%)8pJ#J6M4&U
6&/-4C$%hc4X\&74&a%)%I"X& StS'o66I 0!-2"‰J#JZpJ#JS'o6|i0

%)R%%)86&"4'B%)dJ #( 0N4Wa4f%&%1%)%j h]46bJ%M%&'&R%)*u6&O
SJ%Q%O&'(%)Sa 4'o%)OSJ%& 70SJd?}%)yZ
b. Biểu đồ usecase :
1
Šz642?Wi6JWi
- &Y%i…J0i6&"T&‚T%)'[ 6&B S'JhI%6[#Q4C/%)4&! S,?6bJhI%
6[#Ih~4S,?0I%6&B 0( Z
- &B J0i?Wi6JWi%I-dI0N4d"/46!6&I%&SN%)6bJ%)'[ 6&B S Q?X& U%
_?g%6[4&?N6#Q&YZ
- &Y%Hi#id6&"T&‚T%)'[ 6&B 6&Y%di#idX& 6&B )J0iZ
- &"!4J0i6&"T&‚T%)'[ 6&B 4&"!46&'B%)4C9%&
c. Biểu đồ lớp
&'B%)4C9%&)}06!6TJ6XJ)i%&'WJ?
B
.J6XJ)iJ %6&:J&I06&f%&4&56& 7%6&'B%)4C9%&Z
- &:J6!6d(T4&56& 7%6!64&?]44"!%#I|{dˆ&I0Su%&4Cu6e4&U
o ‹#Jd?J4 "%6dJWW6&:J0N4Wa&I0S!%&) !4&i"6!66& `%d'o6X`4_?2
4C2#QdI) !4CuhI%6[:%)#( 4€%)6& `%d'o6X&!6%&J?WV6M) !4Cu
X&!6%&J?Z
o "0dT&Ji4J6dJWW6&:J6!6&I00 %3iJC6&#I0J|3iJC6&4&56& $%
4&?]44"!%#I%i|464 "%WVd5J6&Y%4C/%)4&! 4 `T4&i"6&"hI%6[Z
Z
.J6XJ)i# i…
&:J4"I%hNT&,%|{dˆ) J"* 7%O|{dˆW5X 7%6bJ%)'[ *r%)4'B%)4!64( 
6&'B%)4C9%&
S
.J6XJ)iTC"6iWW
&:J4"I%hNT&,%|{dˆ6bJ6!6Sa 4'o%)4C"%)0"*id
- .C"6iWW|{dˆ6&"Sa 4'o%)h"JC*
-  C"6iWW|{dˆ6&"Sa 4'o%)T i6i

- TC"6iWW|{dˆ6&"Sa 4'o%)""C*
N
.J6XJ)i0"*id6&:J4"I%hN6c?4Cv6*8d 7?6&"4C^6&B
c?4Cv6hI%6[S'o64& `4X`)}0
- H(T0"*idZh"JC*&:J6!64&?N64f%&OT&'B%)4&:6h U?* @%6bJhI%6[
I%6[l"JC*nC$%hI%6[4JSu%&%)&LJ02%);6& Q?6!63d"4Z
- d(T0"*idZ3d"46&"h `4#u4Cf6bJ6!6_?g%6[4C$%hI%6[*5J#I"4YJSN6bJ
_?g%6[SM4C$%hI%6[Z
- H(T0"*idZ""C*6&"4Jh `44YJSN6bJ0N4_?g%6[4&i"SM4YJSN6bJ0N4
_?g%6[WV6M*/%)l|O-n#( <Œ•|Œ•Ž#I<Œ•-Œ•ŽZ
- )"I  CJ O  4C$%  hI%  6[ 4J  Su%& %)&LJ 4&$0 N4 h2%)  6!6   4   4&?N6  d(T
0"*idZJhdih2%)%I-6M#J 4C^6&:J6!6#u4Cf0I_?g%C~%)6M4&U1%4(
S'o6S Q?SM4'B%)S'B%)#( 4/ 0N4#u4CfO%`? 4•mJdWi4'B%)S'B%)#(
_?g%C~%)X&R%)4&U1%4( S'o6O%)'o6d/ _?g%4C~%)6M4&U1%4( S'o6Z
- H(T0"*idZ. i6i6&"h `44&?N64f%&6bJ4€%)_?g%6[Z&i"SM0N4_?g%6[
WV6M6!64&?N64f%&#u4Cf6bJ%M4C$%hI%6[O0I?_?g%6[*r%)SUT&g%h 74
6[6bJ;h$%OX U?_?g%6[T&g%h 744€%)_?g%6[#IStS'o6Su%&%&'WJ?
publicstaticfinalint

 •<•
publicstaticfinalint
•‹‹
 •=•
publicstaticfinalint
3.
•;•
publicstaticfinalint

•E•
publicstaticfinalint


 •>•
publicstaticfinalint
.‘
 •G•
- d(T0"*idZ"%W46&"h `4) !4Cu6bJ_?g%6[SM4C$%hI%6[)}06!64C'[%)
%&') !4Cu_?g%6[OX U?_?g%6[O) !4Cu0c46bJ4€%)_?g%yZZWVS'o6W{
*e%)SU4f%&4j%)) !4CuhI%6[4C"%)&I0Su%&4Cu6&"hI%6[Z
[
3. Giải quyết bài toán và các vấn đề gặp phải
a. Thuật toán tìm kiếm
i. MiniMax
“Minimaxl6^%)Y dIminmaxndI0N4T&'B%)T&!T4C"%)dˆ4&?-`4_?-`4Su%&6M0e6
Sf6&dI4a 4& U?&MJl0 % 0 ’in4j%4&c4#a%S'o6*54f%&6M4&UdI“4a SJ“l0J| 0 ’inZM4&U
& U?%)'o6d/ dIO%M%&x04a SJ&MJdo f6&#a%S'o6*54f%&dI4a 4& U?lmaximinnZMh~4
%)?}%4€4C^6&B 6M4j%)hx%)X&R%)ZM6”%)S'o60qCN%)6&"%& Q?4C^6&B T&:64/T&B%
#I) vTS'JCJ6!6_?-`4Su%&6&?%)X& 6MW5& 7%* 7%6bJW5X&R%)6&~66&~%Z”
(Theo wikipedia)
&?]44"!%S'o6!T*e%)4C"%)6!64C^6&B Sa X&!%)OX& 0I6!64&?]44"!%490
X `0%&'X&R%)4&U) 2 _?-`4S'o6Z&?]44"!%%I-6&"T&‚T0!-4f%&l&"z6XU
626"%%)'[ n6&Y%S'o6%'(6S 4a4%&c46M4&U4C"%)%&8%)49%&&?a%)4} %&c46M
4&U*"Sa T&'B%))g-CJO6&"T&‚T%&9%4C'(6S'o6%'(6S 4a4lSz6h 744C"%)4C'[%)
&oT62;6r%)6&Y%%&8%)%'(6S 4a '?nZ
 76Su%&) !SN4a4&J-4} 6bJ0N44&`6[WV*5J4C$%&I0Su%&d'o%)4C/%)
4&! 0N4hI%6[l#c%SQ%I-WV%x0qT&,%WJ?nZ&'#]-6&c4d'o%)6bJ4&?]44"!%
4C"%)# 76490CJ%'(6S X`4 `TWVT&e4&?N64C564 `T#I"&I0Su%&d'o%)Z

N4# *e6&"# 76490X `0 % 0J|
Đặc điểm của tìm kiếm MiniMax :
- f%&&"I%6&•%&6Ml%`?6g-h U?* @%4C^6&B &8?&/%n

- f%&4a '?6MOS Q?%I-|2-CJX& ;Sa 4&bS!%&#( %&J?SQ?S 6!6%'(64a 
'?%&c4Z
- NT&:64/T#Q4&[ ) J%lh
0
n
o h&7WaT&g%%&!%&
o 0SNWg?6g-490X `0
- NT&:64/T#QhN%&(lh0n
ii. Alpha-Beta cắt tỉa
c%SQ|2-CJ4C"%)490X `06bJ % J|dIWV*?-74_?J4c4626!6%v4#Id!
4C"%)0N46g-O%&'#]-4C"%)%&8%)hI 4"!%490X `04C"%)X&R%)) J%656d(%X& SN
T&g%%&!%&6J"#IqSNWg?d(%O# 76490X `0hx%) % J|dIX&R%)X&24& *"_?!
4a%4&[ ) J%490X `0Z

C$%4&564`O%& Q?%v4X&R%)6,%*?-74_?J0I#+%X&R%)2%&&'q%)S`%X`4
_?2490X `0Z.&'B%)T&!T490X `0dT&J„i4J6~44•J62 4& 7%S'o6S Q?SMZ
•4'q%)6bJ490X `0dT&J„i4J6~44•J
- &566&c4Sg-6&•dI0N462 4 `%6bJ % J|
- / 0w 0N4%v4WV6M;) !4CudT&J#Ji4J
o dT&Jd'?d/ l6]T%&]4d/ n) !4Cud(%%&c46bJ%v46!66"%6bJ%M4C"%)
4C'[%)&oT490X `00J|
o i4Jd'?d/ l6]T%&]4d/ n) !4Cuh‚%&c46bJ6!6%v46"%6bJ%M4C"%)
4C'[%)&oT490X `00 %
- / 0w h'(6490X `0WV4C?-Q%tham trịdT&J#Ii4J4( 6!6%v4490X `0
6"%
- ( 0w %&!%&490X `0X&R%)4&U62 4& 7%Sa #( ) !4CuSt6M4&9X&R%)6,%
|‚44( %&!%&490X `0SM%8J
-  76d"/ h†0N4%&!%&490X `04} WVX&R%)2%&&'q%)4( X`4_?26?a 6r%)
6bJ# 76490X `0


e4&U
- & 490X `0|?a%)%v46"%T&fJh$%T&2 O%v46"%h$%
T&2 4 `T|?a%)4 `TT&fJ*'( O%v4SM6M) !4Cu0
- `?0Œ•dT&J4&9%)J-d]T4:64J6M4&Ud"/ h†%&!%&
h$%6/%&hq *r6MS 4 `T4&9%v46&:J%&!%&0WV6&~6
6&~%X&R%)S'o66&Y%
&?]44"!%
- Hàm nextActionC2#Qtrạng tháiWV4&56& 7%qh'(6X`4 `Tl6"0S 0J|
n
o %T?44C/%)4&! hI%6[
o ?4T?44C/%)4&! X`4 `T6,%S`%
.
1
- I0maxSearch 4C2#Qgiá trịd(%%&c4lX&R%)T&2 4C"%)4c4626!64C'[%)
&oTn6bJ6!6%v46"%
o %T?44C/%)4&! hI%6[OdT&JOi4J
o ?4T?4|2-CJ;4C'[%)&oT
  !4Cud(%%&g46bJ6!6%v46"%4C"%)4C'[%)&oT0J|Œhi4J
B
 N4) !4Cu–•i4J
Z
- I0minSearch4C2#Qgiá trị%&†%&c4lX&R%)T&2 4C"%)4c4626!64C'[%)
&oTn6bJ6!6%v46"%
o %T?44C/%)4&! hI%6[OdT&JOi4J
o ?4T?4|2-CJ;4C'[%)&oT
  !4Cud(%%&g46bJ6!6%v46"%4C"%)4C'[%)&oT0J|Œhi4J
 N4) !4CuŒ•dT&J
S
iii. Các vấn đề gặp phải trong quá trình cài đặt
Có sử dụng hay không phép so sánh = trong Max >= Beta và Min <= Alpha

Hc-#f*e%v40I?6J0dI%v4hu6~4
& W{*e%)*c?•4C"%)490X `04C"%)4C'[%)&oT4C$%O*@4&c-%v4)a6dI%v4
4&56& 7%&I0nextAction WV6M4( EW5d5J6&Y%4C"%)# 76490X `0%'(6S X`4 `TO
4C"%)X& SM4&56W56&•4}%4/ *?-%&c40N4%'(6S *+%S`%X`4_?24a4&B%
c%SQ%I-6”%)6M4&U) 2 4&f6&hx%)# 764&?]44"!%6bJ0 %3iJC6&#J
0J|3iJC6&6&•6M4&US20h2"dIS,?CJ#Q0z4) !4Cu6bJ# 76490X `0dIX&R%)Sj
6&:X&R%)S20h2"S'o6Cx%)%'(6S SM6Mdw &J-X&R%)
I Sz44C$%4&564`6&"4&c-# 76S'J#I"*c?•dI06&"0!-4f%&S dw Cc4
%& Q?O#IX&!6&"I%4"I%W"#( # 76X&R%)SU*c?•Z
Vấn đề khi xảy ra trường hợp không ăn luôn quân vua của địch khi có thể ăn.
C"%)0N4#I 4C'[%)&oT|2-CJ|!6W?c46M4&UX`44&v6#!%6[%)J-*"# 76
490X `0JdT&Jhi4JZ
N
!6%v40I?|J%&dI6!6%v4WVX`44&v6#!%6[O0I?%)&7dIhu6~4O*@4&c-6"0WV
X&R%)S 4&i"%'(66M4&U4&~%)S'o6%)J-
&'#]-q&I0%i|464 "%4J6,%X U04CJ|i0q4C/%)4&! X`4 `T6M4&UX`4
4&v6#!%6[%)J-X&R%)O%`?6M4&9WVX&R%)6,%*?-740IS'J%)J-CJ4C/%)4&! 
6& `%4&~%)
if(bkCPiece != null )
if(bkCPiece.type == Const.KING){
finalList.clear();
finalList.add(from);
finalList.add(to);
// restore lai ban co
CBProcess.move(cBoard, to, from);
if(bkCPiece != null ){
cBoard.slot[to.x][to.y].cPiece = bkCPiece;
cBoard.cArray[Const.WHITE].add(bkCPiece);
}
cBoard.slot(from).cPiece.firstMoved = bkFirstMoved;

cBoard.slot(from).cPiece.type = bkType;
break;
}
[
Vấn đề khi quân vua đi lỗi để bị ăn
'B%)45%&'T&,%4C$%OWV4}%4/ |!6W?c4dI06&"# 76_?g%#?J—Sg0S,?˜#I"6&w
6&`4O#9#]-O4/ SNWg?=WVX U04CJ|i0_?g%#?J6Mhu1%hq %'(6* 6&?-U%#€JC}
X&R%)O%`?6M4&9WV4C2#Q0N4) !4CuSz6h 74) vT%i|464 "%%&]%CJ#Id"/ %'(6S
%I-O# 76%I-WVdI0q&I00 %3iJC6&l4C"%)4C'[%)&oT6"04900J|n
// neu nuoc di dan den quan vua bi an thi tra ve gia tri nho nhat cua int
if(depth == 1 && bkCPiece != null)
if(bkCPiece.type == Const.KING ){
// restore lai ban co
CBProcess.move(cBoard, to, from);
if(bkCPiece != null ){
cBoard.slot[to.x][to.y].cPiece = bkCPiece;
cBoard.cArray[Const.WHITE].add(bkCPiece);
}
cBoard.slot(from).cPiece.firstMoved = bkFirstMoved;
cBoard.slot(from).cPiece.type = bkType;
return Integer.MIN_VALUE;
}
Vấn đề trong kỹ thuật lập trình : sinh ra các trạng thái hoàn toàn mới hay
chuyển đổi trạng thái đối tượng bàn cờ hiện tại
- ,?#I"dI0N4Sa 4'o%)h"JC*
- $?6,?W %&CJ6!64C/%)4&! X`4 `T
- c%SQ)zTT&2 6M;T&'B%)T&!T
o .&'B%)T&!T=3 %&CJ6!6Sa 4'o%)&"I%4"I%0( SN6d]Td]T#( Sa 
4'o%)h"JC*hJ%S,?


o .&'B%)T&!T;&•*r%)Sa 4'o%)hJ%S,?#I4&J-Sj 4C/%)4&! %N 
hN4C"%)%M
Phân tích phương pháp 1 :
-  764/"0( 0N4Sa 4'o%)WV2%&&'q%)hq %& Q?#c%SQOSz6h 74dI# 76
4C/%)4&! & 7%4/
- g-4C^6&B qSNWg?6I%)6J"WV6I%)4a%%& Q?4&[ ) J%#ISU4/"Sa 
4'o%)0( lS`%&I%)4C 7?hI%6[0( l%v40( nO0w hI%6[6&:J&I%)4C10
Sa 4'o%)n
- )R%%)8pJ#J6cTT&!4hN%&(6&]0&B%6!6%)R%%)8%&'OŠŠ
for(int i = 0; i < 10000000; i++){
int g[] = new int[200];
for(int j = 0; j < 200; j++)
g[j] = 0;
}
a%>OEPlWn6&•SU4&56& 7%# 766cTT&!4#IX&q 4/"4C$%
Phân tích phương pháp 2 :
- .&'B%)T&!T;X&~6T&e6S'o6%&'o6S U04C$%4?-%& $%X& # `46&'B%)4C9%&
WVT&:64/T&B%
- 3 %&CJ6!6%'(6S l6&:X&R%)W %&CJ4C564 `ThI%6[0( n
ArrayList<Coord> list = CBProcess.generate(cBoard, Const.WHITE);
- .&2 hJ6X?T4C/%)4&! hI%6[4C'(6X& h `%Sj 4C/%)4&!
// backup quan o vi tri se den trong truong hop bi an
bkCPiece = cBoard.slot(to).cPiece;
// backup trang thai lan dau di chuye
bkFirstMoved = cBoard.slot(from).cPiece.firstMoved;
// backup kieu cua quan co di chuyen trong truong hop tot phong hau
bkType = cBoard.slot(from).cPiece.type;
- .&2 CiW4"Ci4C/%)4&! hI%6[X& St4&56& 7%|"%)0Y 4f%&4"!%
CBProcess.move(cBoard, to, from);
if(bkCPiece != null ){

cBoard.slot[to.x][to.y].cPiece = bkCPiece;
cBoard.cArray[Const.BLACK].add(bkCPiece);
}
cBoard.slot(from).cPiece.firstMoved = bkFirstMoved;
cBoard.slot(from).cPiece.type = bkType;

b. Hàm định trị
&c4d'o%)6bJ6&'B%)4C9%&6&B 6[T&e4&?N6Cc4%& Q?#I"&I0Su%&4CuZ`?&I0
S!%&) !6&"4JW5S!%&) !X&R%)6&f%&|!6#Q6!64C/%)4&! O%M6M4&U&'(%)*+%4J
S 4( 4C/%)4&! S'o6|i0dI4a4O%&'%)4&564`dIhc4do
& `4X`0N4&I0S!%&) !4a4dIX&MOS^ &† _?J%4g0S`%%& Q?%&g%4a6bJhI%6[
i. Chiến lược 1
Định lượng giá trị cho quân cờ :
- w 0N4_?g%6q4C$%hI%6[WV6M0N4) !4CuX&!6%&J?OT&e4&?N60:6SN
_?J%4CY%)6bJ_?g%SM4C$%hI%6[O6e4&U%&'WJ?
o public static final int KING_VALUE = 1000000;
o public static final int QUEEN_VALUE = 1000;
o public static final int BISHOP_VALUE = 350;
o public static final int KNIGHT_VALUE = 300;
o public static final int ROOK_VALUE = 500;
o public static final int PAWN_VALUE = 100;
- ;h$%WV6M) !4Cu_?g%6[Sa %)'o6%&J?
o $%4C~%)WV0J%)) !4Cu_?g%6[*'B%)
o $%Si%WV0J%)) J4Cu_?g%6[g0
  76Su%&4Cu6bJhI%6[WVdI4j%)6bJ4c4626!6_?g%6[6^%4}%4/ 4C$%hI%6[
public static int cal_v(CBoard cBoard, int color) {
int value = 0;
// Tinh tong diem cua cac quan tren ban co
CArray cArray;
CPiece temp;

cArray = cBoard.cArray[Const.WHITE];
for(int i = 0; i < cArray.n; i++){
temp = cArray.array[i];
value += temp.value;
}
// tinh tong diem quan den
cArray = cBoard.cArray[Const.BLACK];
for(int i = 0; i < cArray.n; i++){k
temp = cArray.array[i];
value += temp.value;
}
return value;
}
Mục đích của chiến lược :

-  vT0!-6M|?&'(%)1%_?g%Su6&&"z6Sj _?g%6M) !4Cud(%&B%%&x04/"
'?4&`&B%l4j%)) !4Cu%)& $%)#QT&fJ6Mdo 6&"0!-n
-  vT0!-T&"%)4&bO6&/-_?g%X& hu%)?-& U0l4j%)) !4Cu%)& $%)#QT& J
X&R%)6Mdo 6&"0!-n
ii. Chiến lược 2
Định lượng mức độ quản lý bàn cờ
- C"%)4C'[%)&oT6&B #( 0N4%)'[ _?2%dˆhI%6[4a4O0!-6&•*r%)&I0Su%&
4Cu%&'4C$%WV6MCc4f4&"z6X&R%)6M%'(6S 4a '?ZC/%)4&! hI%6[Sa #( 
0!-SJ%)CB #I"6[hfZ Q?%I-WV*+%S`%# 760!-WVS %&8%)%'(6#R
%)&LJ&"z60c4_?g%*"S %'(64}
- $?6,?Sz4CJS'J#I") !4Cu6&"6!6%'(6S 6M4&U6bJ_?g%6[%&x0
—X&?-`%X&f6&˜_?g%6[S #I"#u4Cf6MX&2%1%)_?2%dˆ6I%)%& Q?R6I%)4a4
// he so gia tri cua mot nuoc co the di chuyen
// mobiliy coefficient
public static final int KING_MCO = 0;

public static final int QUEEN_MCO = 1;
public static final int BISHOP_MCO = 1;
public static final int KNIGHT_MCO = 2;
public static final int ROOK_MCO = 1;
public static final int PAWN_MCO = 1;
- f%&4"!%6&"&7Wa_?2%dˆhI%6[
ways * mCo;
o ‘J-WWa%'(66M4&U* 6&?-U%4(
o 0"&76M) !4Cu4C$%0N4%'(6S
- f%&4"!%) !4CuhI%6[WV4&56& 7%%&'WJ?
public static int cal_vm(CBoard cBoard, int color) {
int value = 0;
// Tinh tong diem cua cac quan tren ban co
CArray cArray;
CPiece temp;
cArray = cBoard.cArray[Const.WHITE];
for(int i = 0; i < cArray.n; i++){
temp = cArray.array[i];
.

×