JAVA实现五子棋设计源代码_第1页
JAVA实现五子棋设计源代码_第2页
JAVA实现五子棋设计源代码_第3页
JAVA实现五子棋设计源代码_第4页
JAVA实现五子棋设计源代码_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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; /设置棋盘棋子状态 0 无子 1 白子 2 黑子 button b1=new button("游戏开始"); button b2=new button("重置游戏"); button b3=new button("退出游戏"); label lblwin=new label("");/状态标签 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) /设置组件初始状态 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("胜负状态"); 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(""退出"将被判为"输"是否继续游戏?"); 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论