五子棋-Java课程设计(共18页).doc
《五子棋-Java课程设计(共18页).doc》由会员分享,可在线阅读,更多相关《五子棋-Java课程设计(共18页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上面向对象程序设计课程设计报告实验时间: 2010年10月26日 实验班级: * 实验报告总份(片)数: 1 份(片)实验指导老师: * * 设计小组湖南省吉首市吉首大学课程设计报告简单的游戏五子棋小组成员(姓名、学号):*(组长) * * *一、实验分工姓名职责*编写程序、修改程序、设计流程图、设计实验报告*修改程序、分析运行结果、搜索相关资料*修改程序、分析运行结果、整理实验报告二、开发环境(实验编译以及测试环境)硬件环境:CPU:Intel 奔腾双核E5200 主频 2.5GHz内存:2G软件环境:操作系统:Windows 7编程环境 JDK7.0开发工具:Ecl
2、ipse SDK三、使用环境(用户运行环境)硬件环境:CPU主频在500MHZ以上,内存在128M以上软件环境:JAVA运行环境 + Windows XP或Windows 2000 以上操作系统目 录专心-专注-专业第一章 总体设计1.1设计的目的面向对象程序设计课程设计是计算机科学与技术专业集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。本课程设计主要目的在于加深学生对面向对象基础理论和基本知识的理解,掌握面向对象程序设计的基本方法,进一步使学生综合运用所学知识和增强实际动手能力。通过课程设计,学生在下述各方面的能力应该得到锻炼:1. 通过本次设计,实现对本学期内
3、容的回顾与综合运用,包括类的建立,用类创建对象,方法的调用,图形组件的使用方法,图形界面的布局形式,事件处理机制,文件对话框的使用,文件操作的基本方法,数据读写的基本用法等。2. 对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 3. 掌握自顶而下的设计方法,将大问题进行模块化、对象化,领会面向对象程序设计的方法。4. 熟练掌握JAVA语言(C#)的基本语法,灵活运用各种预定义类、线程和事件处理。1.2本系统的主要功能 本系统可以实现电脑可以自动下棋,扫描整个棋盘记录连在一起的黑白棋子数,实现人与电脑有次序的下棋,判断人与电脑的胜负,为电脑下棋提供帮助1.3系统包含的类及类之
4、间的关系。本系统共包6个Java源文件。类之间的关系如图1-1所示。ChessAutoplayScanSortJudgeEvaluate图1-1 类之间的关系图1.4 Java源文件及其功能表1-1 java源文件及其功能序号文件名主要功能备注1Chess本程序的主函数初始化棋盘2Autoplay实现电脑可以自动下棋分为8种情况3Scan扫描整个棋盘记录连在一起的黑白棋子数为判断胜负服务4Sort实现人与电脑有次序的下棋黑棋白棋有序的下5Judge判断人与电脑的胜负可以在文本框中显示胜负结果6Evaluate电脑估计为电脑下棋提供帮助1.5 项目构建思路此程序旨在打造一个小型五子棋娱乐游戏,经
5、过认真分析和探索。终于,在大家的共同努力之下,完成了这个小型五子棋游戏。游戏编辑思路,五子棋是一种互动性的益智游戏。需要棋盘、棋子、棋手、裁判。首先,我们绘制一个五子棋棋盘,关键代码如下:/绘制棋盘函数 public void paint(Graphics g) for (int i=40;i=400;i=i+20) g.drawLine(40,i,400,i); /绘制棋盘 行 for(int j=40;j=400;j=j+20) g.drawLine(j,40,j,400); /绘制棋盘 列 g.fillOval(97,97,6,6); /使用当前颜色填充外接指定矩形框的椭圆 g.fill
6、Oval(337,97,6,6); g.fillOval(97,337,6,6); g.fillOval(337,337,6,6); g.fillOval(217,217,6,6); 其次,我们生成两种颜色不一样的棋子,关键代码如下:黑色棋子代码如下:/ChessPoint_black 类 继承 Canvas类class ChessPoint_black extends Canvas implements MouseListener ChessPad chesspad=null; ChessPoint_black(ChessPad p) setSize(20,20); /设置棋盘每一小格的长宽
7、 addMouseListener(this); chesspad=p; public void paint(Graphics g) g.setColor(Color.black); /设置黑色棋子的颜色 g.fillOval(0,0,18,18); /使用黑色填充椭圆棋子 白色棋子代码如下:class ChessPoint_white extends Canvas implements MouseListener ChessPad chesspad=null; ChessPoint_white(ChessPad p) setSize(20,20); addMouseListener(this
8、); chesspad=p; public void paint(Graphics g) /绘制棋子的颜色 g.setColor(Color.white);/设置为白色 g.fillOval(0,0,18,18);/填充白子 再次,为实现双方行棋,我们实现了电脑自动下棋的函数,一共分为8种情况,关键代码如下:class AutoPlay /AutoPlay类实现电脑可以自动下棋 int x,y; /X统计玩家的连起来的棋子数 /Y电脑玩家的连起来的棋子数 void autoPlay(int chesspad,int a,int b) int randomNumber=(int)(Math.ra
9、ndom()*8)+1; /获取一个随机数 switch(randomNumber) /分情况实现电脑自动下棋 case(1): /通过a,b的值 执行不同的运算,最后返回不同的/值。达到执行不同的操作。if(chesspada-1b-1=0) x=a-1;y=b-1; if(chesspada-1b+1=0) x=a-1;y=b+1; else if(chesspada-2b-2=0) x=a-2;y=b-2; else x=a-3;y=b-3; break; case(2): if(chesspada-1b=0) x=a-1;y=b; else if(chesspada-2b=0) x=a
10、-2;y=b; else x=a-3;y=b; break; case(3): if(chesspada-1b+1=0) x=a-1;y=b+1; else if(chesspada-2b+2=0) x=a-2;y=b+2; else x=a-3;y=b+3; break; case(4): if(chesspadab+1=0) x=a;y=b+1; else if(chesspadab+2=0) x=a;y=b+2; else x=a;y=b+3; break; case(5): if(chesspada+1b+1=0) x=a+1;y=b+1; else if(chesspada+2b+2
11、=0) x=a+2;y=b+2; else x=a+3;y=b+3; break; case(6): if(chesspada+1b=0) x=a+1;y=b; else if(chesspada+2b=0) x=a+2;y=b; else x=a+3;y=b; break; case(7): if(chesspada+1b-1=0) x=a+1;y=b-1; else if(chesspada+2b-2=0) x=a+2;y=b-2; else x=a+3;y=b-3; break; case(8): if(chesspadab-1=0) x=a;y=b-1; else if(chesspa
12、dab-2=0) x=a;y=b-2; elsex=a;y=b+3; break; 第四,为规范双方行棋的先后顺序,我们实现了一个判断函数,关键代码如下:class Sort /sort类 实现人与电脑有次序的下棋 public void sort(int shape) int temp; for(int i=0;i19;i+) for(int j=0;j19;j+) for(int h=1;h=h;w-) if(shapeijw-1shapeijw) /如果前者小于后者,则交换 temp=shapeijw-1; shapeijw-1=shapeijw; shapeijw=temp; 第五,脑
13、只是简单的执行代码,没有智能思考的能力。在行棋之前,他需要对整个棋盘上的棋子做一个判断,然后决定该怎么行棋,关键代码如下:class Evaluate /Evaluate类 int max_x,max_y,max; public void evaluate(int shape) int i=0,j=0; for(i=0;i19;i+) for(j=0;j19;j+) switch(shapeij0) /电脑根据传进来的三维数组决定该怎么行棋, case 5: shapeij4=200; break; case 4: switch(shapeij1) case 4: shapeij4=150+s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 五子棋 Java 课程设计 18
限制150内