java+五子棋+课程设计报告 (2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(论文)任务书
软件学院软件工程+电子商务专业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]
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)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);发言及显示区;用户列表区;棋盘绘制区。
二设计思路
2.1工作原理图
2.2功能的规划
1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。
a.棋盘的绘制
public void draw_qipan(Graphics G) //画棋盘15*15{
G.setColor(Color.lightGray); //设置画刷颜色
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) {//点击点位于X相距20像素的两点间
x1+=10;
}
if(y1%20>10) {//点击点位于y相距20像素的两点间
y1+=10;
}
x1=x1/20*20; //确定棋子可放置的交叉点X位置
y1=y1/20*20; //确定棋子可放置的交叉点y位置