五子棋JAVA语言毕业课程设计报告.docx
五子棋JAVA语言毕业课程设计报告 (此文档为word格式,下载后您可任意编辑修改!)(Java语言程序设计)课程设计报告学院:信息科学技术学院班级:软件技术2班姓名:王更新学号:指导老师:郭韶升课设时间:至二O一四年三月二十六日目录一、设计要求(2)二、设计步骤(2)2.1程序流程图(2)2.2程序的功能分配(3)三、设计正文(6)3.1创立棋盘类(6)3.2判定输赢功能实现(9)3.3测试结果(9)四、心得体会(12)五、参考文献(12)附录源代码(13)一、课程设计要求设计一个1515围棋棋盘,由两玩家交替进行对战,并能够实现下面功能:1.选择落子的先后顺序2.重置棋盘3.刷新重新开场4.退出提示并且规定退出者判为负,但退出经过中要有提示。以防不小心点错了。最后判定某一方能否为五子连珠。实现一个简单的多用户五子棋的游戏程序,包括如下两个界面1选择对弈桌执黑、执白。2在游戏界面,有开场,退出游戏未结束、点退出自动判负;二、设计步骤2.1程序流程图2.2程序的功能分配a.棋盘的绘制publicvoiddraw_qipan(GraphicsG)画棋盘15*15G.setColor(Color.lightGray);G.fill3DRect(0,true);G.setColor(Color.black);for(inti=1;ib.添加按钮Buttonb1=newButton("开场");Buttonb2=newButton("重置游戏");LabellblWin=newLabel("");CheckboxckbHB=newCheckbox3;Buttonexist=newButton("退出");publicvoidinit()ckbHB0=newCheckbox("执白",ckgHB,false);ckbHB1=newCheckbox("执黑",ckgHB,false);ckbHB2=newCheckbox("观看",ckgHB,false);c.鼠标棋子的触发事件publicvoidmouseClicked(MouseEvente)Graphicsg=getGraphics();intx1,y1;x1=e.getX();y1=e.getY();if(e.getX()300|e.getY()300)return;if(x1%20>10)x1+=10;if(y1%20>10)y1+=10;x1=x120*20;y1=y120*20;set_Qizi(x1,y1);m*=(-1);d.按钮的触发事件publicvoidactionPerformed(ActionEvente)Graphicsg=getGraphics();if(e.getSource()=b1)Game_start();elseGame_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_Bodyx20y20!=0)return;Graphicsg=getGraphics();if(color_Qizi=1)判定黑子还是白子g.setColor(Color.black);color_Qizi=0;elseg.setColor(Color.white);color_Qizi=1;g.fillOval(x-10,y);intGame_Bodyx20y20=color_Qizi+1;f.判定胜负if(Game_win_1(x20,y20)判定输赢1lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;if(Game_win_2(x20,y20)判定输赢2lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;if(Game_win_3(x20,y20)判定输赢3lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;if(Game_win_4(x20,y20)判定输赢4lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;三、设计正文3.1创立棋盘类PublicclassWcyChessextendsAppletimplementsActionListener,MouseListener,MouseMotionListener,ItemListenerintcolor_Qizi=0;旗子的颜色标识0:白子1:黑子intintGame_Start=0;游戏开场标志0未开场1游戏中intintGame_Body=newint1616;设置棋盘棋子状态intm=-1;Buttonb1=newButton("开场");Buttonb2=newButton("重置游戏");LabellblWin=newLabel("");CheckboxckbHB=newCheckbox3;Buttonexist=newButton("退出");CheckboxGroupckgHB=newCheckboxGroup();NetchatClientchat=newNetchatClient();publicvoidinit()setLayout(null);addMouseListener(this);add(b1);b1.setBounds();b1.addActionListener(this);add(b2);b2.setBounds();b2.addActionListener(this);ckbHB0=newCheckbox("执白",ckgHB,false);ckbHB0.setBounds();ckbHB1=newCheckbox("执黑",ckgHB,false);ckbHB1.setBounds();ckbHB2=newCheckbox("观看",ckgHB,false);add(ckbHB0);add(ckbHB1);add(ckbHB2);ckbHB0.addItemListener(this);ckbHB1.addItemListener(this);add(lblWin);lblWin.setBounds(0);lblWin.setBackground(Color.red);lblWin.setText("胜利者!");没有显示?ckbHB2.setBounds(440,20,60,30);add(exist);exist.setBounds(0);exist.addActionListener(this);add(chat);chat.setBounds(20,500,300,300);chat.frame();chat.setVisible(true);Game_start_csh();setSize();setVisible(true);publicvoiditemStateChanged(ItemEvente)if(ckbHB0.getState()选择黑子还是白子color_Qizi=0;elsecolor_Qizi=1;publicvoidmousePressed(MouseEvente)publicvoidmouseClicked(MouseEvente)Graphicsg=getGraphics();intx1,y1;x1=e.getX();y1=e.getY();if(e.getX()300|e.getY()300)return;if(x1%20>10)x1+=10;if(y1%20>10)y1+=10;x1=x120*20;y1=y120*20;set_Qizi(x1,y1);m*=(-1);publicvoidactionPerformed(ActionEvente)Graphicsg=getGraphics();if(e.getSource()=b1)Game_start();elseGame_re();if(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(x20,y20)判定输赢1lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;if(Game_win_2(x20,y20)判定输赢2lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;if(Game_win_3(x20,y20)判定输赢3lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;if(Game_win_4(x20,y20)判定输赢4lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");intGame_Start=0;3.3测试结果a.进入游戏界面当前位置:文档视界五子棋JAVA语言毕业课程设计报告五子棋JAVA语言毕业课程设计报告当前位置:文档视界五子棋JAVA语言毕业课程设计报告五子棋JAVA语言毕业课程设计报告四、课程设计心得体会通过此次课程设计,将我本学期所学的JAVA知识得到稳固和应用,在设计的经过中我碰到了很到问题,不过在教师和同学们的帮助和本人的考虑下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。由于本人的分析设计和程序经历缺乏,该系统设计和实现经过中,还有很多没有完善的地方,比方用户界面设计不够美观,异常出错处理比拟差等多方面问题,这些都有待进一步完善和提高。对于文中出现的缺乏和系统中出现的问题敬请教师指导。五、参考文献1.吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社2.柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社3丁振凡Java语言实用教程:北京邮电大学出版社附录源代码importimportjava.io.*;importjava.applet.*;importjava.awt.*;importjava.awt.event.*;importjava.applet.Applet;importjava.awt.Color;PublicclasswuziqiextendsAppletimplementsActionListener,MouseListener,MouseMotionListener,ItemListenerintcolor_Qizi=0;旗子的颜色标识0:白子1:黑子intintGame_Start=0;游戏开场标志0未开场1游戏中intintGame_Body=newint1616;设置棋盘棋子状态intm=-1;Buttonb1=newButton("开场");Buttonb2=newButton("重新开场");LabellblWin=newLabel("");CheckboxckbHB=newCheckbox3;Buttonexist=newButton("退出");CheckboxGroupckgHB=newCheckboxGroup();publicvoidinit()setLayout(null);addMouseListener(this);add(b1);b1.setBounds();b1.addActionListener(this);add(b2);b2.setBounds();