




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、五子棋java實現代碼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;/旗子的顏色標識 0:白子 1:黑子 int gamestart=0;/
2、游戲開始標志 0未開始 1游戲中 int gamebody=new int1616; /設置棋盤棋子狀態(tài) 0 無子 1 白子 2 黑子 button b1=new button("游戲開始"); button b2=new button("重置游戲"); button b3=new button("退出游戲"); label lblwin=new label("");/狀態(tài)標簽 checkbox ckbhb=new checkbox2;/起始復選框 checkboxgroup ckghb=new checkboxg
3、roup();/復選框組 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) /設置組件初始狀態(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("勝負狀態(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()="關閉") 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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年洛陽市洛寧縣招聘政府專職消防員考試真題
- 倉庫保潔服務合同范本
- 出售車位合同范本
- 企業(yè)經銷合同范本
- 2024年德陽市就業(yè)創(chuàng)業(yè)促進中心市本級公益性崗位招聘考試真題
- 個人房屋裝飾合同范本
- 買斷合同屬于合同范本
- 低價購買租賃合同范本
- 全案整裝合同范本
- 勞務聘用合同范本6
- 2024項目管理人員安全培訓考試題(審定)
- 2024 年國家公務員考試《申論》(地市級)真題及答案
- 南京2025年中國醫(yī)學科學院皮膚病醫(yī)院招聘13人第二批筆試歷年典型考點(頻考版試卷)附帶答案詳解
- 2024年沈陽職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 《榜樣9》觀后感心得體會一
- 2024年上海普陀區(qū)司法局招聘人民調解員考試真題
- 駕照考試題庫及答案(完整版)
- 2024年3、6、9月青少年軟件編程Python等級考試一級真題(全3套 含答案)
- 大族激光打標機培訓
- 2025中國鐵塔公司社會招聘85人高頻重點提升(共500題)附帶答案詳解
- T-IMAS 087-2024 托克托縣辣椒地方品種提純復壯技術規(guī)程
評論
0/150
提交評論