《java五子棋程序(源码)》由会员分享,可在线阅读,更多相关《java五子棋程序(源码)(14页珍藏版)》请在人人文库网上搜索。
1、一个很经典的 java 五子棋程序 (源码 )import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;publicclass enzit extends Applet implementsActionListener,MouseListener,MouseMotionListener,ItemListener int color_Qizi=0;/ 旗子的颜色标识 0: 白子 1: 黑子int intGame_Start=0;/ 游戏开始标志 0 未开始 1 游戏中int 。
2、intGame_Body=newint1616; / 设置棋盘棋子状态 0 无子 1 白子 2 黑子Button b1=new Button( 游戏开始 );Button b2=new Button( 重置游戏 );Label lblWin=new Label( );Checkbox ckbHB=new Checkbox2;CheckboxGroup ckgHB=new CheckboxGroup(); public void init() setLayout(null);addMouseListener(this);add(b1);b1.setBounds(330,50,80,30); b1。
3、.addActionListener(this);add(b2);b2.setBounds(330,90,80,30); b2.addActionListener(this);ckbHB0=new Checkbox( 白子先 ,ckgHB,false); ckbHB0.setBounds(320,20,60,30);ckbHB1=new Checkbox( 黑子先 ,ckgHB,false); ckbHB1.setBounds(380,20,60,30);add(ckbHB0);add(ckbHB1);ckbHB0.addItemListener(this);ckbHB1.addItemLis。
4、tener(this); add(lblWin);lblWin.setBounds(330,130,80,30);Game_start_csh();publicvoid itemStateChanged(ItemEvent e)if (ckbHB0.getState() /选择黑子先还是白子先color_Qizi=0;elsecolor_Qizi=1;publicvoid actionPerformed(ActionEvent e)Graphics g=getGraphics();if (e.getSource()=b1)Game_start();elseGame_re();publicvoi。
5、d mousePressed(MouseEvent e) publicvoid mouseClicked(MouseEvent e)Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();if (e.getX()300 | e.getY()300) return;if (x1%2010)x1+=20;if(y1%2010)y1+=20;x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);publicvoid mouseEntered(MouseEvent e)publicvoid mouseExited(。
6、MouseEvent e)publicvoid mouseReleased(MouseEvent e)publicvoid mouseDragged(MouseEvent e)public void mouseMoved(MouseEvent e)publicvoid paint(Graphics g) draw_qipan(g);publicvoid set_Qizi(int x,int y) / 落子if (intGame_Start=0) /判断游戏未开始return;if (intGame_Bodyx/20y/20!=0)return;Graphics g=getGraphics();。
7、if (color_Qizi=1)/ 判断黑子还是白子g.setColor(Color.black);color_Qizi=0;elseg.setColor(Color.white);color_Qizi=1;g.fillOval(x-10,y-10,20,20);intGame_Bodyx/20y/20=color_Qizi+1;if (Game_win_1(x/20,y/20) / 判断输赢lblWin.setText(Get_qizi_color(color_Qizi)+ intGame_Start=0;if (Game_win_2(x/20,y/20) / 判断输赢 lblWin.se。
8、tText(Get_qizi_color(color_Qizi)+ intGame_Start=0;if (Game_win_3(x/20,y/20) / 判断输赢 lblWin.setText(Get_qizi_color(color_Qizi)+ intGame_Start=0;if (Game_win_4(x/20,y/20) / 判断输赢 lblWin.setText(Get_qizi_color(color_Qizi)+ intGame_Start=0;赢了 !);赢了 !);赢了 !);赢了 !);public String Get_qizi_color(int x) if (x=。
9、0) return elsereturn 白子 ;publicvoid draw_qipan(Graphics G) /画棋盘 15*15G.setColor(Color.lightGray); G.fill3DRect(10,10,300,300,true);G.setColor(Color.black);for(int i=1;i15)break;if (intGame_Bodyx1+iy1=intGame_Bodyxy) t+=1;elsebreak;for (int i=1;i4)returntrue;elsereturnfalse;publicboolean Game_win_2(i。
10、nt x,int y) /判断输赢 竖int x1,y1,t=1;x1=x;y1=y;for (int i=1;i15)if (intGame_Bodyx1y1+i=intGame_Bodyxy)t+=1;elsebreak; for (int i=1;i15)break;if (intGame_Bodyx1+iy1-i=intGame_Bodyxy)t+=1;elsefor (int i=1;i4)return true;elsereturn false;publicboolean Game_win_4(int x,int y) /判断输赢 左斜int x1,y1,t=1;x1=x;y1=y;for (int i=1;i15)break;if (intGame_Bodyx1+iy1+i=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i4)returntrue;elsereturnfalse。