五子棋-Java课程设计

上传人:xins****2008 文档编号:111150394 上传时间:2019-11-01 格式:DOC 页数:18 大小:276KB
返回 下载 相关 举报
五子棋-Java课程设计_第1页
第1页 / 共18页
五子棋-Java课程设计_第2页
第2页 / 共18页
五子棋-Java课程设计_第3页
第3页 / 共18页
五子棋-Java课程设计_第4页
第4页 / 共18页
五子棋-Java课程设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《五子棋-Java课程设计》由会员分享,可在线阅读,更多相关《五子棋-Java课程设计(18页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告简单的游戏五子棋一、实验分工姓名职责虞浩编写程序、修改程序、设计流程图、设计实验报告赵林峰修改程序、分析运行结果、搜索相关资料整理实验报告二、开发环境(实验编译以及测试环境)硬件环境:CPU:Intel 奔腾双核E5200 主频 2.5GHz内存:2G软件环境:操作系统:Windows 7编程环境 JDK1.6开发工具:blueJ三、使用环境(用户运行环境)硬件环境:CPU主频在500MHZ以上,内存在128M以上软件环境:JAVA运行环境 + Windows XP或Windows 2000 以上操作系统目 录第一章 总体设计1.1设计的目的1.2本系统的主要功能1.3系统包含的类

2、及类之间的关系。1.4 Java源文件及其功能1.5 项目构建思路第二章 模块功能介绍2.1主类Chess2.2类Autoplay2.3类Scan第三章 功能测试及运行效果3.1系统主界面3.2工作总结第一章 总体设计1.1设计的目的掌握面向对象程序设计的基本方法,进一步使学生综合运用所学知识和增强实际动手能力。通过课程设计,学生在下述各方面的能力应该得到锻炼:1. 通过本次设计,实现对本学期内容的回顾与综合运用,包括类的建立,用类创建对象,方法的调用,图形组件的使用方法,图形界面的布局形式,事件处理机制,文件对话框的使用,文件操作的基本方法,数据读写的基本用法等。2. 对于给定的设计题目,如

3、何进行分析,理清思路,并给出相应的数学模型。 3. 掌握自顶而下的设计方法,将大问题进行模块化、对象化,领会面向对象程序设计的方法。4. 熟练掌握JAVA语言(C#)的基本语法,灵活运用各种预定义类、线程和事件处理。1.2本系统的主要功能 本系统可以实现电脑可以自动下棋,扫描整个棋盘记录连在一起的黑白棋子数,实现人与电脑有次序的下棋,判断人与电脑的胜负,为电脑下棋提供帮助1.3系统包含的类及类之间的关系。本系统共包6个Java源文件。类之间的关系如图1-1所示。ChessAutoplayScanSortJudgeEvaluate图1-1 类之间的关系图结束游戏开始玩家下子鼠标动作绘制棋子显示界

4、面,绘制棋盘判断输赢是否重置、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.fillOval(337,97,6,6); g.fillOval(97,337,6,6); g.fillOval(337,337,6,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); /设置棋盘每一小格的长宽 addMouseListener(this); chesspad=p; public void paint(Graphics g

7、) 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); chesspad=p; public void paint(Graphics g) /绘制棋子的颜色 g.setColor(

8、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.random()*8)+1; /获取一个随机数 switch(randomNumber) /分情况实现电脑自动下棋 case(1):

9、/通过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-2;y=b; else x=a-3;y=b; break; case(3): if(chesspada-1b+1=0) x=a-

10、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=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;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号