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