JAVA五子棋程序代码分析(1)
请帮我把每句代码的含义和作用解释下import java.applet.*;import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;public class wuziqi extends Applet ... 展开
请帮我把每句代码的含义和作用解释下import java.applet.*;import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener{int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子int intGame_Start=0;//游戏开始标志 0未开始 1游戏中int intGame_Body[][]=new int[16][16];//设置棋盘棋子状态 0 无子 1 白子 2 黑子Button b1=new Button("游戏开始");Button b2=new Button("重置游戏");Label lblWin=new Label("");Checkbox ckbHB[]=new Checkbox[2];CheckboxGroup ckgHB=new CheckboxGroup();public void init(){setLayout(null);addMouseListener(this);add(b1);b1.setBounds(330,50,80,30);b1.addActionListener(this);add(b2);b2.setBounds(330,90,80,30);b2.addActionListener(this);ckbHB[0]=new Checkbox("白子先",ckgHB,false);ckbHB[0].setBounds(320,20,60,30);ckbHB[1]=new Checkbox("黑子先",ckgHB,false);ckbHB[1].setBounds(380,20,60,30);add(ckbHB[0]);add(ckbHB[1]);ckbHB[0].addItemListener(this);ckbHB[1].addItemListener(this);add(lblWin);lblWin.setBounds(330,130,80,30);Game_start_csh();}public void itemStateChanged(ItemEvent e){if (ckbHB[0].getState()) //选择黑子先还是白子先{ color_Qizi=0;}else{ color_Qizi=1;}}public void actionPerformed(ActionEvent e){Graphics g=getGraphics();if (e.getSource()==b1){ Game_start();}else{ Game_re();}}public void mousePressed(MouseEvent e){}public void mouseClicked(MouseEvent e){Graphics g=getGraphics();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 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){draw_qipan(g);} 收起
其他答案
楼主要是觉得看的不舒服可以拷到记事本里看~import java.applet.*;import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;//这一段import就不说了,下面要用到的就import进来public class wuziqi extends Appl 展开
楼主要是觉得看的不舒服可以拷到记事本里看~import java.applet.*;import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;//这一段import就不说了,下面要用到的就import进来public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener //继承Applet表明是个applet,后面的接口必须要实现每个接口的所有方法{ int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子 int intGame_Start=0;//游戏开始标志 0未开始 1游戏中 int intGame_Body[][]=new int[16][16];//设置棋盘棋子状态 0 无子 1 白子 2 黑子 Button b1=new Button("游戏开始");Button b2=new Button("重置游戏");//两个按钮Label lblWin=new Label("");//这个label用来显示最后输赢信息的,先留空Checkbox ckbHB[]=new Checkbox[2];//用来表明选择黑气或白棋先走的checkboxCheckboxGroup ckgHB=new CheckboxGroup();//两个checkbox必须放在同一个checkboxgroup里才能做到单选public void init() //初始化,堆砌界面{ setLayout(null);//不设布局管理器addMouseListener(this);//将本类作为鼠标事件的接口响应鼠标动作add(b1);//将事先定义好的第一个按钮添加入界面b1.setBounds(330,50,80,30);//设置第一个按钮左上角的位置和大小b1.addActionListener(this);//将本类作为按钮事件的接口响应按钮动作add(b2);//将事先定义好的第二个按钮添加进去b2.setBounds(330,90,80,30);/设置第二个按钮左上角的位置和大小b2.addActionListener(this);//将本类作为按钮事件的接口响应按钮动作ckbHB[0]=new Checkbox("白子先",ckgHB,false);//new一个checkboxckbHB[0].setBounds(320,20,60,30);//设置左上角位置和大小ckbHB[1]=new Checkbox("黑子先",ckgHB,false);//new第二个checkboxckbHB[1].setBounds(380,20,60,30);//设置左上角位置和大小add(ckbHB[0]);//将第一个checkbox加入界面add(ckbHB[1]);//将第二个checkbox加入界面ckbHB[0].addItemListener(this);//将本类作为其事件接口来响应选中动作ckbHB[1].addItemListener(this);//将本类作为其事件接口来响应选中动作add(lblWin);//将标签加入界面lblWin.setBounds(330,130,80,30);//设置标签的左上角位置和大小Game_start_csh();//调用游戏初始化} public void itemStateChanged(ItemEvent e) //ItemListener接口中的方法,必须要有{ if (ckbHB[0].getState()) //选择黑子先还是白子先 { color_Qizi=0;//白棋先} else { color_Qizi=1;//黑棋先} } public void actionPerformed(ActionEvent e) //ActionListener接口中的方法,也是必须的{ Graphics g=getGraphics();//这句话貌似可以去掉,g是用来画图或者画界面的if (e.getSource()==b1) //如果动作的来源是第一个按钮{ Game_start();//游戏开始} else //否则{ Game_re();//游戏重新开始} } public void mousePressed(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有public void mouseClicked(MouseEvent e) //鼠标单击时{ Graphics g=getGraphics();//获得画笔int x1,y1;x1=e.getX();//单击处的x坐标y1=e.getY();//单击处的y坐标if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300) //在棋盘范围之外{ return;//则这是不能走棋的,直接返回} //下面这两个if和两个赋值的作用是将x和y坐标根据舍入原则修改成棋盘上格子的坐标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 void mouseEntered(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有public void mouseExited(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有public void mouseReleased(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有public void mouseDragged(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有public void mouseMoved(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有public void paint(Graphics g) //重绘和applet程序装载的时候会调用这个绘制的过程{ draw_qipan(g);//画棋盘} 收起
2011-02-10 03:14
来自北京市
赞(0)点赞赞(0)举报
发布评论
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。
回答成功


