您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > java+五子棋+课程设计报告
课程设计(论文)任务书软件学院软件工程+电子商务专业2007-2班一、课程设计(论文)题目多用户五子棋游戏二、课程设计(论文)工作自2009年6月15日起至2009年6月19日止。三、课程设计(论文)地点:创新大楼310四、课程设计(论文)内容要求:1.本课程设计的目的(1)通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应用软件、开发系统软件等各项工作。(2)通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。2.课程设计的任务及要求1)基本要求:实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌及角色(执黑、执白、观看)。(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);发言及显示区;用户列表区;棋盘绘制区。2)创新要求:在基本要求达到后,可进行创新设计,如改善算法性能、友好的人机界面。3)课程设计论文编写要求(1)要按照书稿的规格打印与写课程设计论文(2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录(源代码)等(3)课程设计论文装订按学校的统一要求完成4)答辩与评分标准:(1)完成基本算法设计:20分;(2)完成设计过程:40分;(3)完成调试:20分;(4)回答问题:20分。5)参考文献:[1]吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社[2]柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社[3](美)CayS.HorsttmannGaryCornellJAVA核心技术卷i:基础知识(原书第七版):机械工业出版社[4]丁振凡Java语言实用教程:北京邮电大学出版社[5])课程设计进度安排内容天数地点构思及收集资料1图书馆编码与调试2.5实验室撰写论文1.5图书馆、实验室学生签名:2009年6月15日课程设计(论文)评审意见(1)完成基本算法(20分):优()、良()、中()、一般()、差();(2)完成调试(20分):优()、良()、中()、一般()、差();(3)创新设计(20分):优()、良()、中()、一般()、差();(4)设计分析(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人:职称:2009年6月21日目录绪论....................................................1一、题目内容及要求.......................................2二、设计思路..........................................2三、具体实现..........................................5四、测试结果.........................................55五、设计体会与小结...................................149六、参考文献..........................................20附录.................................................201绪论Java是由美国的sunmicrosystems公司发展出来的一套面向对象程序语言,因为它的面向对象,分散运算,跨平台等等特性,又支持多线程。使得许多用过的人都爱不释手。Java既是一种程序设计语言,也是一个完整的平台。作为一种程序语言,它简洁、面向对象、安全、健壮,以及适用于Internet技术;而作为一个平台(JRE,JavaRuntimeEnvironment,Java运行环境或者说是Java虚拟机),对于符合Sun公司Java标准的应用程序,都可以在Java平台上正确运行,与程序运行的操作系统无关。Java发展到今天,已从编程语言发展成为全球第一大通用开发平台。Java技术已被计算机行业主要公司所采纳。1999年,Sun公司推出了以Java2平台为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,全球形成了一股巨大的Java应用浪潮。这个五子棋游戏正是用这个平台做的,在实践中充分体现出了Java面向对象给我们带来的方便。多用户聊天程序也让我体会到了Java多线程的强大功能。一题目内容及要求要求实现一个简单的多用户五子棋胡游戏程序,包括如下两个界面:(1)选择对弈桌及角色(执黑、执白、观看)。(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);发言及显示区;用户列表区;棋盘绘制区。2二设计思路2.1工作原理图2.2功能的规划1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。a.棋盘的绘制publicvoiddraw_qipan(GraphicsG)//画棋盘15*15{G.setColor(Color.lightGray);3G.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;4set_Qizi(x1,y1);m*=(-1);}d.按钮的触发事件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;}2.编写一个功能判断落子的位置及画出相应的黑白棋子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);5intGame_Body[x/20][y/20]=color_Qizi+1;}3.判断胜负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)+赢了!);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;}}4.添加用户聊天功能NetchatClientchat=newNetchatClient();chat.frame();chat.setVisible(true);三具体实现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(开始);6Buttonb2=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)
本文标题:java+五子棋+课程设计报告
链接地址:https://www.777doc.com/doc-2218431 .html