JAVA實現(xiàn)五子棋設(shè)計源代碼_第1頁
JAVA實現(xiàn)五子棋設(shè)計源代碼_第2頁
JAVA實現(xiàn)五子棋設(shè)計源代碼_第3頁
JAVA實現(xiàn)五子棋設(shè)計源代碼_第4頁
JAVA實現(xiàn)五子棋設(shè)計源代碼_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、五子棋java實現(xiàn)代碼package wuziqi1;import java.applet.*;import java.applet.applet;import java.awt.*;import java.awt.color;import java.awt.event.*;public class wuziqi extends applet implements actionlistener,mouselistener, mousemotionlistener,itemlistener int color_qizi=0;/旗子的顏色標(biāo)識 0:白子 1:黑子 int gamestart=0;/

2、游戲開始標(biāo)志 0未開始 1游戲中 int gamebody=new int1616; /設(shè)置棋盤棋子狀態(tài) 0 無子 1 白子 2 黑子 button b1=new button("游戲開始"); button b2=new button("重置游戲"); button b3=new button("退出游戲"); label lblwin=new label("");/狀態(tài)標(biāo)簽 checkbox ckbhb=new checkbox2;/起始復(fù)選框 checkboxgroup ckghb=new checkboxg

3、roup();/復(fù)選框組 public void init() resize(420,360); setlayout(null); addmouselistener(this); add(b1); b1.setbounds(330,100,70,30); b1.addactionlistener(this); add(b2); b2.setbounds(330,140,70,30); b2.addactionlistener(this); add(b3); b3.setbounds(330,180,70,30); b3.addactionlistener(this); ckbhb0=new c

4、heckbox("白子先",ckghb,false); ckbhb0.setbounds(330,30,70,30); ckbhb1=new checkbox("黑子先",ckghb,false); ckbhb1.setbounds(330,60,70,30); add(ckbhb0); add(ckbhb1); ckbhb0.additemlistener(this); ckbhb1.additemlistener(this); add(lblwin); lblwin.setbounds(330,280,70,30); setbackground(co

5、lor.gray); setbounds(100,100,320,280); setvisible(true); start(); public void itemstatechanged(itemevent e) if (ckbhb0.getstate() /判斷黑子先還是白子先 color_qizi=0; else color_qizi=1; public void actionperformed(actionevent e) if (e.getsource()=b1)/開始游戲 game_start(); else if(e.getsource()=b3)/退出游戲 game_stop(

6、); else/e.getsource()=b2/重新開始 game_re(); public void mouseclicked(mouseevent e) int x1,y1; x1=e.getx(); y1=e.gety(); if (e.getx()<20 | e.getx()>300 | e.gety()<20 | e.gety()>300) return; if (x1%20>10) x1+=20; if(y1%20>10) y1+=20; x1=x1/20*20; y1=y1/20*20; set_qizi(x1,y1); public voi

7、d mousepressed(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) public void mousereleased(mouseevent e) public void mousedragged(mouseevent e) public void mousemoved(mouseevent e) public void paint(graphics g) qipan(g); public void set_qizi(int x,int y) /落子

8、if (gamestart=0) /判斷游戲是否開始 return; if (gamebodyx/20y/20!=0) return; graphics g=getgraphics(); if (color_qizi=1)/判斷黑子還是白子 g.setcolor(color.black); color_qizi=0; else g.setcolor(color.white); color_qizi=1; g.filloval(x-10,y-10,20,20); gamebodyx/20y/20=color_qizi+1; if (game_win_1(x/20,y/20) /判斷輸贏1 橫向

9、lblwin.settext(get_qizi_color(color_qizi)+"贏了!"); gamestart=0; if (game_win_2(x/20,y/20) /判斷輸贏2 豎向 lblwin.settext(get_qizi_color(color_qizi)+"贏了!"); gamestart=0; if (game_win_3(x/20,y/20) /判斷輸贏3 左斜 lblwin.settext(get_qizi_color(color_qizi)+"贏了!"); gamestart=0; if (game_

10、win_4(x/20,y/20) /判斷輸贏4 右斜 lblwin.settext(get_qizi_color(color_qizi)+"贏了!"); gamestart=0; public string get_qizi_color(int x)/返回棋子顏色 if (x=0) return "黑子" else return "白子" public void qipan(graphics g) /畫棋盤 15*15 g.setcolor(color.gray); g.fill3drect(10,10,300,300,true);

11、g.setcolor(color.black); for(int i=1;i<16;i+) g.drawline(20,20*i,300,20*i); g.drawline(20*i,20,20*i,300); public void game_btn_enable(boolean e) /設(shè)置組件初始狀態(tài) b1.setenabled(e); b2.setenabled(e); b3.setenabled(e); ckbhb0.setenabled(e); ckbhb1.setenabled(e); public void start() /游戲開始初始化 gamestart=0; ga

12、me_btn_enable(true); b2.setenabled(false); b3.setenabled(false); ckbhb0.setstate(true); for (int i=0;i<16 ;i+ ) for (int j=0;j<16 ;j+ ) gamebodyij=0; lblwin.settext("勝負(fù)狀態(tài)"); public void game_start() /游戲開始 gamestart=1; game_btn_enable(false); b2.setenabled(true); b3.setenabled(true);

13、public void game_re() /游戲重新開始 repaint(); start(); repaint(); start(); public void game_stop()/退出游戲 new myframe(); class myframe extends frame implements actionlistener button b4,b5,b6; myframe() super("my windows"); b4=new button(""退出"將被判為"輸"是否繼續(xù)游戲?"); setlayo

14、ut(new flowlayout(); add(b4); b4.addactionlistener(this); setlayout(new flowlayout(); b5=new button("是"); add(b5); b5.addactionlistener(this); setlayout(new flowlayout(); b6=new button("否"); add(b6); b6.addactionlistener(this); addwindowlistener(new closewin(); setsize(220,100);

15、setvisible(true); public void actionperformed(actionevent e) if(e.getactioncommand()="關(guān)閉") dispose(); if (e.getsource()=b5) dispose(); else if(e.getsource()=b6) dispose(); lblwin.settext(get_qizi_color(color_qizi)+"贏了!"); else return; class closewin extends windowadapter public v

16、oid windowclosing(windowevent e) window w=e.getwindow(); w.dispose(); public boolean game_win_1(int x,int y) /判斷輸贏 橫 int x1,y1,t=1; x1=x; y1=y; for (int i=1;i<5 ;i+ ) if (x1>15) break; if (gamebodyx1+iy1=gamebodyxy) t+=1; else break; for (int i=1;i<5 ;i+ ) if (x1<1) break; if(gamebodyx1-

17、iy1=gamebodyxy) t+=1; else break; if (t>4) return true; else return false; public boolean game_win_2(int x,int y) /判斷輸贏 豎 int x1,y1,t=1; x1=x; y1=y; for (int i=1;i<5 ;i+ ) if (x1>15) break; if (gamebodyx1y1+i=gamebodyxy) t+=1; else break; for (int i=1;i<5 ;i+ ) if (x1<1) break; if(gam

18、ebodyx1y1-i=gamebodyxy) t+=1; else break; if (t>4) return true; else return false; public boolean game_win_3(int x,int y) /判斷輸贏 左斜 int x1,y1,t=1; x1=x; y1=y; for (int i=1;i<5 ;i+ ) if (x1>15) break; if (gamebodyx1+iy1-i=gamebodyxy) t+=1; else break; for (int i=1;i<5 ;i+ ) if (x1<1) break; if(gamebodyx1-iy1+i=gamebodyxy) t+=1; else break; if (t>4) return true; else return false; public boolean game_win

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論