最新java+五子棋+课程设计报告-(2).doc
《最新java+五子棋+课程设计报告-(2).doc》由会员分享,可在线阅读,更多相关《最新java+五子棋+课程设计报告-(2).doc(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datejava+五子棋+课程设计报告-(2)目录课程设计(论文)任务书 软件 学院软件工程+电子商务专业2007-2 班 一、课程设计(论文)题目多用户五子棋游戏 二、课程设计(论文)工作自 2009 年 6 月 15 日起至 2009 年 6月 19 日止。三、课程设计(论文) 地点: 创新大楼310 四、课程设计(论文)内容要求:1本课程设计的目的 (1)通过课程设计把
2、课堂上讲的内容融会贯通,学会设计程序、开发应用软件、开发系统软件等各项工作。 (2)通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。2课程设计的任务及要求1)基本要求:实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌及角色(执黑、执白、观看)。(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);发言及显示区;用户列表区;棋盘绘制区。2)创新要求: 在基本要求达到后,可进行创新设计,如改善算法性能、友好的人机界面。3)课程设计论文编写要求
3、(1)要按照书稿的规格打印与写课程设计论文 (2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录(源代码)等 (3)课程设计论文装订按学校的统一要求完成4)答辩与评分标准: (1)完成基本算法设计:20分; (2)完成设计过程 :40分; (3)完成调试:20分;(4)回答问题:20分。5)参考文献:1吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社2 柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社3 (美)CayS.Horsttmann Gary Cornell JAVA核心技术卷i:基础知识(原书第七版):机械工业出版社4丁
4、振凡 Java 语言实用教程 :北京邮电大学出版社56)课程设计进度安排内容 天数地点构思及收集资料 1图书馆编码与调试 2.5实验室撰写论文 1.5图书馆、实验室学生签名: 2009年6 月 15 日课程设计(论文)评审意见(1)完成基本算法(20分):优()、良()、中()、一般()、差(); (2)完成调试(20分):优()、良()、中()、一般()、差(); (3)创新设计(20分):优()、良()、中()、一般()、差();(4)设计分析(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否
5、降等级:是()、否()评阅人: 职称: 2009年 6月 21 日目录绪论1一、题目内容及要求2二 、设计思路 2三 、具体实现 5四 、测试结果 15五、 设计体会与小结 19六、参考文献 . .20附录 . .20-绪论Java是由美国的sun microsystems 公司发展出来的一套面向对象程序语言,因为它的面向对象,分散运算,跨平台等等特性,又支持多线程。使得许多用过的人都爱不释手。Java既是一种程序设计语言,也是一个完整的平台。作为一种程序语言,它简洁、面向对象、安全、健壮,以及适用于Internet技术;而作为一个平台(JRE,Java Runtime Environment
6、,Java运行环境或者说是Java虚拟机),对于符合Sun公司Java标准的应用程序,都可以在Java平台上正确运行,与程序运行的操作系统无关。Java发展到今天,已从编程语言发展成为全球第一大通用开发平台。Java技术已被计算机行业主要公司所采纳。1999年,Sun公司推出了以Java2平台为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,全球形成了一股巨大的Java应用浪潮。这个五子棋游戏正是用这个平台做的,在实践中充分体现出了Java面向对象给我们带来的方便。多用户聊天程序也让我体会到了Java多线程的强大功能。一 题目内容及要求要求实现一个简单的多用户五子棋胡游戏程
7、序,包括如下两个界面:(1)选择对弈桌及角色(执黑、执白、观看)。(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);发言及显示区;用户列表区;棋盘绘制区。二 设计思路2.1工作原理图2.2功能的规划1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。a.棋盘的绘制public void draw_qipan(Graphics G) /画棋盘 15*15G.setColor(Color.lightGray); /设置画刷颜色G.fill3DRect(10,10,300,300,true); /绘制填充矩形,灰
8、白色G.setColor(Color.black); /设置画刷颜色for(int i=1;i16;i+)/绘制纵横线G.drawLine(20,20*i,300,20*i);G.drawLine(20*i,20,20*i,300); b.添加按钮与按钮胡规划Button b1=new Button(开始);Button b2=new Button(重置游戏);Label lblWin=new Label( );Checkbox ckbHB=new Checkbox3;Button exist = new Button(退出); public void init()ckbHB0=new Che
9、ckbox(执白,ckgHB,false);ckbHB1=new Checkbox(执黑,ckgHB,false);ckbHB2=new Checkbox(观看,ckgHB, false);C.鼠标棋子胡相应触发事件public void mouseClicked(MouseEvent e) Graphics g=getGraphics();/在当前面板绘制图像int x1,y1;x1=e.getX();/获取点击点横坐标y1=e.getY();/获取点击点纵坐标if (e.getX()300 | e.getY()300) /点击点在棋盘外return;if (x1%2010) /点击点位于X
10、相距20像素的两点间x1+=10;if(y1%2010) /点击点位于y相距20像素的两点间y1+=10;x1=x1/20*20; /确定棋子可放置的交叉点X位置y1=y1/20*20; /确定棋子可放置的交叉点y位置set_Qizi(x1,y1); /调用函数set_Qizi,放置棋子m*=(-1); /某方开始放置棋子,譬如m为正则黑方下棋 d.按钮的触发事件 public void actionPerformed(ActionEvent e) Graphics g=getGraphics();/在当前面板绘制图像if (e.getSource()=b1) Game_start();/调用
11、函数,开始游戏elseGame_re();/调用函数,重新开始if(e.getSource()=exist)Game_re();/调用函数,重新开始lblWin.setText(Get_qizi_color(color_Qizi)+输了!);/调用函数Get_qizi_color(color_Qizi),其返回值为“黑子”或“白字”intGame_Start=0; /归0操作,表明游戏尚未开始 2.编写一个功能判断落子的位置及画出相应的黑白棋子public void set_Qizi(int x,int y) /落子if (intGame_Start=0) /判断游戏是否已开始return;i
12、f (intGame_Bodyx/20y/20!=0) /该交叉点已被占用return;Graphics g=getGraphics();/在当前面板绘制图像if (color_Qizi=1) /判断棋子的黑白g.setColor(Color.black); /若棋子为黑,即color_Qizi=1,设置黑色画笔color_Qizi=0; /下一步由白子,故赋值为0elseg.setColor(Color.white); /棋子为白子,设置画笔为白color_Qizi=1; /下一步为黑子,故赋值为1g.fillOval(x-10,y-10,20,20); /绘制填充椭圆intGame_Bod
13、yx/20y/20=color_Qizi+1; /棋盘交叉点已占用,即不为零3.判断胜负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) /判断输赢3lblWin.setText(Get_qizi_color(colo
14、r_Qizi)+赢了!);intGame_Start=0;if (Game_win_4(x/20,y/20) /判断输赢4lblWin.setText(Get_qizi_color(color_Qizi)+赢了!);intGame_Start=0; 4添加用户聊天功能NetchatClient chat=new NetchatClient();chat.frame();chat.setVisible(true);三 具体实现3.1创建棋盘类Public class WcyChess extends Applet implements ActionListener,MouseListener,M
15、ouseMotionListener,ItemListenerint color_Qizi=0;/旗子的颜色标识 0:白子 1:黑子int intGame_Start=0;/游戏开始标志 0未开始 1游戏中int intGame_Body=new int1616; /设置棋盘棋子状态int m=-1;Button b1=new Button(开始);Button b2=new Button(重置游戏);Label lblWin=new Label( );Checkbox ckbHB=new Checkbox3;Button exist = new Button(退出); CheckboxGro
16、up ckgHB=new CheckboxGroup();NetchatClient chat=new NetchatClient();/对话框类实体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);ckbHB0=new Checkbox(执白,
17、ckgHB,false);ckbHB0.setBounds(320,20,60,30);ckbHB1=new Checkbox(执黑,ckgHB,false);ckbHB1.setBounds(380,20,60,30);ckbHB2=new Checkbox(观看,ckgHB, false);add(ckbHB0);add(ckbHB1);add(ckbHB2);ckbHB0.addItemListener(this);ckbHB1.addItemListener(this);add(lblWin);lblWin.setBounds(330,180,80,30);lblWin.setBack
18、ground(Color.red);lblWin.setText(胜利者!);/没有显示?ckbHB2.setBounds(440, 20,60, 30);add(exist);exist.setBounds(330,130,80,30);exist.addActionListener(this);/add(chat);chat.setBounds(20, 500, 300, 300);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600); setVisible(true);public void itemSt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 java 五子棋 课程设计 报告
限制150内