logo资料库

java课设报告 五子棋.doc

第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
资料共35页,剩余部分请下载后查看
绪论 
一 题目内容及要求
二 设计思路
三 具体实现
四 测试结果
五 设计体会与小结
六 参考文献
附录 (源代码)
课程设计(论文)任务书 软件 学院 软件工程+电子商务专业 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.Horsttmann Gary Cornell JAVA 核心技术卷 i:基础知识(原 书第七版):机械工业出版社 [4]丁振凡 Java 语言实用教程 :北京邮电大学出版社 [5]http://csdn.net 6)课程设计进度安排 内容 构思及收集资料 编码与调试 撰写论文 天数 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 附录 .... .. ............................................ 20
绪论 Java是由美国的sun microsystems 公司发展出来的一套面向对象程序语 言,因为它的面向对象,分散运算,跨平台等等特性,又支持多线程。使得许 多用过的人都爱不释手。 Java既是一种程序设计语言,也是一个完整的平台。作为一种程序语言, 它简洁、面向对象、安全、健壮,以及适用于Internet技术;而作为一个平 台(JRE,Java Runtime Environment,Java运行环境或者说是Java虚拟机), 对于符合Sun公司Java标准的应用程序,都可以在Java平台上正确运行,与程 序运行的操作系统无关。 Java发展到今天,已从编程语言发展成为全球第一大通用开发平台。Java 技术已被计算机行业主要公司所采纳。1999年,Sun公司推出了以Java2平台 为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,全球形成 了一股巨大的Java应用浪潮。 这个五子棋游戏正是用这个平台做的,在实践中充分体现出了Java面向对 象给我们带来的方便。多用户聊天程序也让我体会到了Java多线程的强大功 能。 一 题目内容及要求 要求实现一个简单的多用户五子棋胡游戏程序,包括如下两个界面: (1)选择对弈桌及角色(执黑、执白、观看)。 (2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);发言及 显示区;用户列表区;棋盘绘制区。 1
二 设计思路 2.1 工作原理图 2.2 功能的规划 1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡 触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。 a.棋盘的绘制 public void draw_qipan(Graphics G) //画棋盘 15*15{ G.setColor(Color.lightGray); 2
G.fill3DRect(10,10,300,300,true); G.setColor(Color.black); for(int i=1;i<16;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 Checkbox[3]; Button exist = new Button("退出"); } } public void init(){ ckbHB[0]=new Checkbox("执白",ckgHB,false); ckbHB[1]=new Checkbox("执黑",ckgHB,false); ckbHB[2]=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()<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; 3
set_Qizi(x1,y1); m*=(-1); } d.按钮的触发事件 public void actionPerformed(ActionEvent e) { Graphics g=getGraphics(); if (e.getSource()==b1) { Game_start(); Game_re(); } if(e.getSource()==exist){ } else{ } Game_re(); lblWin.setText(Get_qizi_color(color_Qizi)+"输了!"); intGame_Start=0; 2.编写一个功能判断落子的位置及画出相应的黑白棋子 public void set_Qizi(int x,int y) //落子{ if (intGame_Start==0) //判断游戏未开始{ return; } if (intGame_Body[x/20][y/20]!=0) { return; } Graphics g=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); 4
intGame_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.添加用户聊天功能 NetchatClient chat=new NetchatClient(); chat.frame(); chat.setVisible(true); 三 具体实现 3.1 创建棋盘类 Public ActionListener,MouseListener,MouseMotionListener,ItemListener{ WcyChess class extends Applet int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子 int intGame_Start=0;//游戏开始标志 0 未开始 1 游戏中 int intGame_Body[][]=new int[16][16]; //设置棋盘棋子状态 int m=-1; Button b1=new Button("开始"); Button b2=new Button("重置游戏"); implements 5
分享到:
收藏