您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > 五子棋JAVA语言课程设计报告
《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;i16;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%2010){x1+=10;}if(y1%2010){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];Buttonexist=newButton(退出);CheckboxGroupckgHB=newCheckboxGroup();NetchatClientchat=newNetchatClient();publicvoidinit(){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]=newCheckbox(执白,ckgHB,false);ckbHB[0].setBounds(320,20,60,30);ckbHB[1]=newCheckbox(执黑,ckgHB,false);ckbHB[1].setBounds(380,20,60,30);ckbHB[2]=newCheckbox(观看,ckgHB,false);add(ckbHB[0]);add(ckbHB[1]);add(ckbHB[2]);ckbHB[0].addItemListener(this);ckbHB[1].addItemListener(this);add(lblWin);lblWin.setBounds(330,180,80,30);lblWin.setBackground(Color.red);lblWin.setText(胜利者!);//没有显示?ckbHB[2].setBounds(440,20,60,30);add(exist);exist.setBounds(330,130,80,30);7exist.addActionListener(this);//add(chat);chat.setBounds(20,500,300,300);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600);setVisible(true);}publicvoiditemStateChanged(ItemEvente){if(ckbHB[0].getState())//选择黑子还是白子{color_Qizi=0;}else{color_Qizi=1;}}publicvoidmousePressed(MouseEvente){}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%2010){x1+=10;}if(y1%2010){y1+=10;}x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);}publicvoidactionPerformed(ActionEvente){Graphicsg=getGraphics();if(e.getSource()==b1){Game_start();}else{Game_re();}8if(e.getSource()==exist){Game_re();lblWin.setText(Get_qizi_color(color_Qizi)+输了!);intGame_Start=0;}}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseReleased(MouseEvente){}publicvoidmouseDragged(MouseEvente){}publicvoidmouseMoved(MouseEvente){}publicvoidpaint(Graphicsg){draw_qipan(g);}3.2判断输赢功能实现if(Game_win_1(x/20,y/20)){//判断输赢1lblWin.setText(Get_qizi_color(color_Qizi)+赢了!);intGame_Start=0;}if(Game_win_2(x/20,y/20)){//判断输赢2lblWin.setText(Get_qizi_color(color_Qizi)+赢了!);intGame_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;}93.3测试结果a.进入游戏界面游戏开始的界面有三个选择项,用户可以选择相应的角色,选择完毕后点击开始进入游戏。10b.选择角色,开始下棋首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!c.下完后,重新开始下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏.11d.游戏中点退出,自动判输在下棋的过程当中谁中途退出,即点击退出,系统自动判断谁输12四、课程设计心得体会通过此次课程设计,将我本学期所学的J
本文标题:五子棋JAVA语言课程设计报告
链接地址:https://www.777doc.com/doc-4924348 .html