1. Trang chủ
  2. » Giáo án - Bài giảng

Tìm Hiểu Java Applet Và ì Hiện Thực Website Chơi Cờ Caro Băng Java Applet

11 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Ngày đăng: 22/10/2022, 01:42

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w