Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
1,3 MB
Nội dung
S Giáo D c Và T o Tr ng i H c M TPHCM Khoa Công Ngh Thông Tin - - án môn h c Giáo Viên H ng D n: TS Th y Nguy n V n Hi p Sinh Viên Th c Hi n: Nguy n Minh Trí – MSSV: 10260082 Võ V n Chiêu – MSSV: 10260006 Ngày 20-3-2008 : Hi n Th c Website Ch i C Caro B ng Java Applet ÁN MÔN H C: Hi n th c Website ch i c caro b ng Java Applet: • • • • Tìm hi u quy trình xây d ng s d ng Java Applet Tìm hi u nguyên lý làm vi c c a trò ch i caro, gi i thu t ch i c caro Hi n th c Java Applet ch i c caro Hi n th c trang web s d ng Java Applet ch i c caro : Hi n Th c Website Ch i C Caro B ng Java Applet TRI N KHAI CHI TI T: – Tìm hi u quy trình xây d ng s d ng Applet Java Java Applet m t m u ch kh n ng l p trình đ c ng trình nh , đ c nhúng vào trang Web có Java Applet c g ng thi t k cho kích th c th t nh g n, t i ch y đ c môi tr ng phân tán Internet Mu n vi t Applet b n ph i theo m t b khung Java qui đ nh s n d nhiên ngôn ng ta dùng đ vi t Applet hi n ch có Java xây d ng s d ng Java Applet ta th c hi n m t s b • B c c b n sau: c 1: T o t p tin Java ngu n T o th m c C:\MyApplet Ta t o t p tin có tên “Helloworld.java” th m c MyApplet v a t o v i n i dung nh sau: import java.awt.Graphics; import java.applet.Applet; public class Helloworld extends Applet { public void paint(Graphics g) { g.drawString("Hello World!!", 50, 25 ); } } L u ý tên L p (class) ph i trùng v i tên file • B c 2: Biên d ch t p tin ngu n Ta có th s d ng m t s ph n m m h tr biên d ch java nh : JCreator ho c JBuilder… ch minh h a b ng trình biên d ch “javac” biên d ch t dịng l nh: Vào th m c C:\MyApplet gõ: C:\MyApplet>javac Helloworld.java Khi biên d ch thành cơng, trình biên d ch t o m t t p tin có tên “Helloworld.class” : Hi n Th c Website Ch i C Caro B ng Java Applet ây file đ bytecode xem đ c biên d ch t file “Helloworld.java”, ch a đ ng mã c file Java Applet ta có cách: i - S d ng Appletviewer.exe có s n th m c j2sdk1.4.0\bin c a Java ii – Ta nhúng t p tin class vào file html xem b ng trình t Web có h tr JavaApplet (vd: Trình t Internet Explorer c a Microsoft,…) • B c 3: Nhúng Applet vào trang Web HTML nhúng file class c a Java Applet vào t p tin html ta làm nh sau: Welcome to My Applet L u file l i v i tên “MyApplet.html” • B c 4: Ch y Applet ch y Java Applet ta m file “MyApplet.html” trình t web (xem hình minh h a) : Hi n Th c Website Ch i C Caro B ng Java Applet Xem b ng Applet Viewer Xem b ng I.E 7.0 Ghi chú: - Các Applet có th cài đ t nhi u ph ng th c khác nh ng nh t ph i có m t ph ng th c sau: init( ), start( ), paint( ) - Không nh ng d ng c a Java, Applet khơng c n ph i có ph ng th c main( ) – Tìm hi u nguyên lý làm vi c c a trò ch i caro Xét bàn c g m n x n (v i n >= 10) ô, nguyên t c ch i nh sau: - Ta có ng i ch i, g i ng i A ng i B, m i ng i s thay phiên ch i, đ n m i phiên ch ng i đ c đánh ch đánh ký hi u (O ho c X …) vào ô bàn c , đ d phân bi t ta ch n: o Ng i A: Ch n c màu tr ng o Ng i B: Ch n c màu đen : Hi n Th c Website Ch i C Caro B ng Java Applet Ng i A ng i B s tìm cách đánh đ chi n th ng đ i th c a theo nguyên t c (nguyên t c đ chi n th ng ph thu c vào s th a thu n c a ng i ch i), có nhi u ngun t c tơi nêu nguyên t c đ chi n th ng c b n: Nguyên t c 1: (t ng đ i d ) - N u c tr ng (đen) đánh, có liên ti p chi n th ng, b t k đ u có b ch n hay khơng - Ng c l i n u c tr ng (đen) đánh mà khơng có liên ti p nhau, tr c đánh xem n c c c a đ i th có liên ti p khơng, n u có ch n l i, n u khơng có ti p t c phát tri n n c c c a => Ai giành đ c liên ti p tr c th ng Nguyên t c 2: (h i khó) - N u c tr ng (đen) có th ng hàng (theo chi u: d c, ngang, xiên), n m li n k đ u đ ng th ng không b c đen ch n c tr ng (đen) th ng cu c - N u c tr ng (đen) có th ng hàng (theo chi u: d c, ngang, xiên), n m k đ u c a đ ng th ng b c đen ch n, c tr ng (đen) s đánh ti p vào đ u l i => nh v y s có tr ng k đ u b ch n => c tr ng (đen) th ng cu c - Ng c l i, đ n l t c a ng i A (c tr ng) ho c ng i B (c đen) đánh, đ u tiên ph i ki m tra đ ng c a đ i ph ng xem có ho c ô li n không, n u có ta ch n l i, cịn khơng ta s ti p t c phát tri n n c c c a c tr ng h p, n u ng i ch u thua ng i cịn l i chi n th ng Và ng i đánh h t ô bàn c mà v n không phân đ nh đ c th ng thua xem nh hịa - Gi i thu t ch i c caro Xét m t trị ch i hai ng i thay phiên n c c a Trị ch i có m t tr ng thái b t đ u m i n c s bi n đ i tr ng thái hi n hành thành m t tr ng thái m i Trò ch i s k t thúc theo m t quy đ nh đó, theo cu c ch i s d n đ n m t tr ng thái ph n ánh có m t ng i th ng cu c ho c m t tr ng thái mà c hai đ u th không th phát tri n đ c n c c a mình, ta g i tr ng thái hịa c : Hi n Th c Website Ch i C Caro B ng Java Applet Ta tìm cách phân tích xem t m t tr ng thái s d n đ n đ u th s th ng v i u ki n c hai đ u th đ u có trình đ nh M t trị ch i nh v y có th đ c bi u di n b i m t cây, g i trò ch i M i m t nút c a bi u di n cho m t tr ng thái Nút g c bi u di n cho tr ng thái b t đ u c a cu c ch i M i nút bi u di n cho m t tr ng thái k t thúc c a trò ch i (tr ng thái th ng thua ho c hòa) N u tr ng thái x đ c bi u di n b i nút n c a n bi u di n cho t t c tr ng thái k t qu c a n c có th xu t phát t tr ng thái x Ví d : Xét trị ch i carơ có Hai ng i thay phiên X ho c O Ng i đ c ô th ng hàng (ngang, d c, xiên) th ng cu c N u h t ô mà ch a phân th ng b i hai đ u th hòa M t ph n c a trò ch i đ c bi u di n b i sau: : Hi n Th c Website Ch i C Caro B ng Java Applet Trong trị ch i trên, nút đ c tơ n n vi n khung đôi đ d phân bi t v i nút khác Ta có th gán cho m i nút m t giá tr đ ph n ánh tr ng thái th ng thua hay hòa c a đ u th Ch ng h n ta gán cho nút giá tr nh sau: · n u t i ng · -1 n u t i ng i X th ng i X thua · n u hai đ u th hòa Nh v y t m t tr ng thái b t k , đ n l t mình, ng i X s ch n cho m t n c cho d n đ n tr ng thái có giá tr l n nh t (trong tr ng h p 1) Ta nói X ch n n c MAX, nút mà t X ch n n c c a đ c g i nút MAX Ng i O đ n l t s ch n m t n c cho d n đ n tr ng thái có giá tr nh nh t (trong tr ng h p -1, X s thua O s th ng) Ta nói O ch n n c MIN, nút mà t O ch n n c c a đ c g i nút MIN Do hai đ u th luân phiên n c c a nên m c trị ch i c ng luânphiên MAX MIN Cây trị ch i th cịn có tên MIN-MAX Ta có th đ a m t quy t c đ nh tr cho nút đ ph n ánh tình tr ng th ng thua hay hòa kh n ng th ng cu c c a hai đ u th N u m t nút nút tr c a giá tr đ c gán cho nút Ng c l i, n u nút nút MAX tr c a b ng giá tr l n nh t c a t t c tr c a c a N u nút nút MIN tr c a giá tr nh nh t c a t t c tr c a c a Quy t c đ nh tr c ng g n gi ng v i quy t c đ nh tr cho bi u th c s h c, m khác bi t toán t hàm l y max ho c m i nút có th có nhi u Do v y ta có th dùng k thu t quay lui đ đ nh tr cho nút c a trò ch i cài đ t ta có m t s gi thi t sau: · Ta có m t hàm Payoff nh n vào m t nút cho ta giá tr c a nút · Các h ng ∞ -∞ t ng ng tr Payoff l n nh t nh nh t · Khai báo ki u ModeType = (MIN, MAX) đ xác đ nh đ nh tr cho nút MIN hay MAX · M t ki u NodeType đ c khai báo m t cách thích h p đ bi u di n cho m t nút ph n ánh m t tr ng thái c a cu c ch i : Hi n Th c Website Ch i C Caro B ng Java Applet · Ta có m t hàm is_leaf đ xác đ nh xem m t nút có ph i nút hay không? · Hàm max t ng ng l y giá tr l n nh t giá tr nh nh t c a hai giá tr Gi i thu t vét c n đ nh tr trò ch i Hàm Search nh n vào m t nút n ki u mode c a nút (MIN hay MAX) tr v giá tr c a nút N u nút n nút tr v giá tr đ c gán cho nút Ng c l i ta cho n m t giá tr t m value -∞ ho c ∞ tùy thu c n nút MAX hay MIN xét c a n Sau m t c a n có giá tr V đ t l i value = max(value,V) n u n nút MAX value = min(value,V) n u n nút MIN Khi t t c c a n đ c xét giá tr t m value c a n tr thành giá tr c a K thu t c t t a Alpha-Beta (Alpha-Beta Pruning) Trong gi i thu t vét c n trên, ta th y đ đ nh tr cho m t nút đó, ta ph i đ nh tr cho t t c nút cháu c a nó, mu n đ nh tr cho nút g c ta ph i đ nh tr cho t t c nút S l ng nút trò ch i h u h n nh ng không ph i Ch ng h n trị ch i ca rơ nói trên, n u ta có bàn c bao g m n có th có t i n! nút (trong tr ng h p 9!) i v i lo i c khác nh c vua ch ng h n, s l ng nút cịn l n h n nhi u Ta g i m t s bùng n t h p nút Chúng ta c g ng tìm m t cách cho đ nh tr m t nút khơng nh t thi t ph i đ nh tr cho t t c nút cháu c a Tr c h t ta có nh n xét nh sau: N u P m t nút MAX ta xét m t nút Q c a (d nhiên Q nút MIN) Gi s Vp m t giá tr t m c a P, Vq m t giá tr t m c a Q n u ta có Vp ≥ Vq ta khơng c n xét ch a xét c a Q n a Vì n u có xét giá tr c a Q c ng s nh h n ho c b ng Vq khơng nh h ng đ n Vp T ng t n u P nút MIN (t t nhiên Q nút MAX) Vp ≤ Vq ta c ng khơng c n xét đ n ch a xét c a Q n a Vi c không xét ti p ch a đ c xét c a nút Q g i vi c c t t a Alpha-Beta c a nút Q Trên c s nh n xét đó, ta nêu quy t c đ nh tr cho m t nút không ph i nút nh sau: : Hi n Th c Website Ch i C Caro B ng Java Applet Kh i đ u nút MAX có giá tr t m -∞ nút MIN có giá tr t m ∞ N u t t c nút c a m t nút đ tr thành giá tr c a c xét ho c b c t t a giá tr t m c a nút N u m t nút MAX n có giá tr t m V1 m t nút c a có giá tr V2 đ t giá tr t m m i c a n max (V1,V2) N u n nút MIN đ t giá tr t m m i c a n (V1,V2) V n d ng quy t c c t t a Alpha-Beta nói đ h n ch s l ng nút ph i xét V n d ng quy t c đ đ nh tr cho nút A trị ch i ví d A nút MAX, lúc đ u có giá tr t m -∞, xét B c a A, B nút nên giá tr c a giá tr đ c gán 1, giá tr t m c a A bây gi max (-∞,1) = Xét C c a A, C nút MIN, giá tr t m lúc đ u c a C ∞ Xét E c a C, E nút MAX, giá tr t m c a E -∞ Xét I c a E, I nút nên giá tr c a Quay lui l i E, giá tr t m c a E bây gi max (-∞,0) = Vì E ch có m t I xét nên giá tr t m tr thành giá tr c a E Quay lui l i C, giá tr t m m i c a C (∞,0) = A nút MAX có giá tr t m 1, C c a A, có giá tr t m 0, 1>0 nên ta không c n xét F c a C n a Nút C có hai E F, E đ c xét, F b c t, v y giá tr t m c a C tr thành giá tr c a Sau có giá tr c a C, ta ph i đ t l i giá tr t m c a A, nh ng giá tr t m khơng thay đ i max (1,0) = Ti p t c xét nút D, D nút MIN nên giá tr t m ∞, xét nút G c a D, G nút MAX nên giá tr t m c a -∞, xét nút J c a G Vì J nút nên có giá tr Quay lui l i G, giá tr t m c a G bây gi max (-∞,0) = giá tr t m tr thành giá tr c a G G ch có m t J xét Quay lui v D, giá tr t m c a D bây gi (∞,0) = Giá tr t m c a D nh h n giá tr t m c a nút A MAX cha c a nên ta c t t a H ch a đ c xét c a D lúc D có giá tr Quay lui v A, giá tr t m c a v n không thay đ i, nh ng lúc c c a A đ u đ c xét nên giá tr t m tr thành giá tr c a A K t qu đ c minh h a hình sau: : Hi n Th c Website Ch i C Caro B ng Java Applet - Hi n th c Applet java ch i c caro Có ch ng trình minh h a “Hi n th c trò ch i caro b ng Java Applet” - Ng i ch i v i Ng i - Ng i ch i v i Máy - Hi n th c trang web s d ng Applet Java ch i c caro 10