《Java语言程序设计》课程设计报告学院:信息科学技术学院班级:软件技术2班姓名:王更新学号:1108900505指导教师:郭韶升课设时间:2014-03-17至2014-03-26二O一四年三月二十六日1目录一、设计要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯....2二、设计步骤⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯....22.1程序流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯...22.2程序的功能分配⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯...3三、设计正文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯....63.1创建棋盘类⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.63.2判断输赢功能实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.93.3测试结果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.....9四、心得体会⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...12五、参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...12附录(源代码)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.132一、课程设计要求设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能:1.选择落子的先后顺序2.重置棋盘3.刷新重新开始4.退出提示并且规定退出者判为负,但退出过程中要有提示。以防不小心点错了。最后判断某一方是否为五子连珠。实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌(执黑、执白)。(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);二、设计步骤2.1程序流程图32.2程序的功能分配a.棋盘的绘制publicvoiddraw_qipan(GraphicsG)//画棋盘15*15{G.setColor(Color.lightGray);G.fill3DRect(10,10,300,300,true);G.setColor(Color.black);for(inti=1;i<16;i++){G.drawLine(20,20*i,300,20*i);G.drawLine(20*i,20,20*i,300);}}b.添加按钮Buttonb1=newButton("开始");Buttonb2=newButton("重置游戏");LabellblWin=newLabel("");CheckboxckbHB[]=newCheckbox[3];Buttonexist=newButton("退出");publicvoidinit(){ckbHB[0]=newCheckbox("执白",ckgHB,false);ckbHB[1]=newCheckbox("执黑",ckgHB,false);ckbHB[2]=newCheckbox("观看",ckgHB,false);}c.鼠标棋子的触发事件publicvoidmouseClicked(MouseEvente){Graphicsg=getGraphics();intx1,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+=10;}if(y1%20>10){y1+=10;}x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);}4d.按钮的触发事件publicvoidactionPerformed(ActionEvente){Graphicsg=getGraphics();if(e.getSource()==b1){Game_start();}else{Game_re();}if(e.getSource()==exist){Game_re();lblWin.setText(Get_qizi_color(color_Qizi)+"输了!");intGame_Start=0;}e.判断落子的位置及画出相应的黑白棋子publicvoidset_Qizi(intx,inty)//落子{if(intGame_Start==0)//判断游戏未开始{return;}if(intGame_Body[x/20][y/20]!=0){return;}Graphicsg=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);intGame_Body[x/20][y/20]=color_Qizi+1;}f.判断胜负if(Game_win_1(x/20,y/20))//判断输赢1{lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;}if(Game_win_2(x/20,y/20))//判断输赢2{lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");5intGame_Start=0;}if(Game_win_3(x/20,y/20))//判断输赢3{lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;}if(Game_win_4(x/20,y/20))//判断输赢4{lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;}}6三、设计正文3.1创建棋盘类PublicclassWcyChessextendsAppletimplementsActionListener,MouseListener,MouseMotionListener,ItemListener{intcolor_Qizi=0;//旗子的颜色标识0:白子1:黑子intintGame_Start=0;//游戏开始标志0未开始1游戏中intintGame_Body[][]=newint[16][16];//设置棋盘棋子状态intm=-1;Buttonb1=newButton("开始");Buttonb2=newButton("重置游戏");LabellblWin=newLabel("");CheckboxckbHB[]=newCheckbox[3];B...