欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    课程设计报告(JAVA程序设计).pdf

    • 资源ID:36163710       资源大小:777.26KB        全文页数:25页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计报告(JAVA程序设计).pdf

    河河南南城城建建学学院院HenanHenan UniversityUniversity ofof UrbanUrban ConstructionConstructionJAVA 基础课程设计设计说明书课程名称:JAVA 基础课程设计设计题目:Java 游戏设计黑白棋指导教师:陈红军何宗耀班级:0844141学号:084414119学生姓名:管维聪同组人员:张欣林阳赵阳计算机科学与工程学院2016 年 1 月 8 日成绩:评语:JAVA 基础课程设计实验报告- 1 -目录第第 1 章章 选选题题. 21.1 题目背景.21.2 系统实现的具体分工.21.2.1选题.21.2.2团队分工.21.3 开发环境.2第 2 章 设计内容(用例图及类图等).32.1 实现功能.32.2 概要设计.42.3 界面设计.5第第 3 章章 系统实现系统实现. 63.1 涉及知识点.63.2 系统运行(主要运行界面抓图).63.3 源程序清单(关键代码).7第第 4 章章 测试与实验结果测试与实验结果. 23第第 5 章章 结束语结束语. 23参考文献参考文献. 24JAVA 基础课程设计实验报告- 2 -第 1 章 选题1.1 题目背景目前游戏是人们娱乐消遣的途径之一, 并且开发一个游戏可以让自己综合运用所学的知识,也能让自己掌握的知识更加巩固。所以如何设计,开发一个游戏,也是许多人去热衷研究的。1.2 系统实现的具体分工1.2.1选题用户可通过使用界面选择人人对战和人机对战来进行游戏, 在游戏界面还能通过自己的爱好,来选择界面的颜色,还有让用户了解游戏规则的帮助选项。1.2.2团队分工表 1.1项目分工一览表角色姓名承担的具体任务组长张欣设计人机部分组员林阳设计画图部分组员赵阳设计界面部分组员管维聪设计人人部分1.3 开发环境编程工具:JDK+ECLIPSE(+MySQL)计算机:PC操作系统:Microsoft Windows 7.0JAVA 基础课程设计实验报告- 3 -第 2 章 设计内容(用例图及类图等)2.1 实现功能1. 用户进入界面:用户通过这个界面进入游戏。如图2.菜单功能:提供开始,更改背景,帮助提示 等功能。用户可以使用重新开始游戏,退出游戏,和改变界面背景,观看帮助信息。如图:3. 人人对战:可以进行两个人的对战游戏,玩家和玩家之间可以继续游戏。4人机对战::玩家可以和简单人对战。JAVA 基础课程设计实验报告- 4 -2.2 概要设计自己的图:Class:ChessListener继承ChessListener:构 造 函数MousClickedjudge()full()Check(int a)paintChess()paintChess1()paintChess2()paintChess3()paintChess4()hengYou()hengZuo()hengShang()hengShang1()hengXia()hengXia1()xieyouS()xieyouX()xiezuoS()xiezuoX()hengYou1()hengZuo1()xieyou1()xieyou2()xiezuo1()xiezuo2()MouseAdaperJAVA 基础课程设计实验报告- 5 -组员林阳的图:组员赵阳的图:2.3 界面设计用户使用界面人人对战开始功能背景设计功能关于人机对战游 戏 界面JAVA 基础课程设计实验报告- 6 -第 3 章 系统实现3.1 涉及知识点Java 编程,Swing 图形界面设计,继承与多态等。3.2 系统运行(主要运行界面抓图)图 3.1系统主界面1.用户使用界面:2.人人对战:3.人机对战:JAVA 基础课程设计实验报告- 7 -3.3 源程序清单(关键代码)import java.awt.*;/导入包中的类import java.awt.event.*;import javax.swing.*;class ChessListener extends MouseAdapter / 继承MouseAdapter类,重写方法MouseClicked()private Graphics g;/将画布对象传过来private int xiafa;/记录当前棋子的下法publicstatic int stata=1;/判断下黑棋还是白棋private int x1,y1;/记录点击处的横坐标和纵坐标private JLabel jilu;/当前下棋子的人private JLabel alila;/黑棋棋子数private JLabel taozila;/白棋棋子数private Chess ch;/用来刷新棋盘private intte=0;/特殊情况private intchange;/记录改变的棋子数目public ChessListener(Graphics g,Chess ch,JLabel jilu,JLabel alila,JLabeltaozila)this.g=g;this.ch=ch;this.jilu=jilu;this.alila=alila;this.taozila=taozila;/点击下棋子构造函数:用于接受来自 Chess 类的数据, 并对 ChessListener 类进行初始化。JAVA 基础课程设计实验报告- 8 -public void mouseClicked(MouseEvent e)int a=1;/记录所下的子String s = null;x1=e.getX();y1=e.getY();System.out.println(x1+,+y1);for(int i=0;iChess.rows-1;i+)for(int j=0;jChess.cols-1;j+)int x2=Chess.x+Chess.size/2+Chess.size*i;/得到棋盘中棋子所在点的横坐标int y2=Chess.y+Chess.size/2+Chess.size*j;/得到棋盘中棋子所在点的纵坐标/将棋子下在棋盘格子的正中央if(Math.abs(x1-x2)Chess.size/3&Math.abs(y1-y2)judge()1)/如果黑棋的子较多, 则黑棋获胜JOptionPane.showMessageDialog(null, 游戏结束,黑棋获胜);jilu.setText(游戏结束,黑棋获胜 );else if(judge()0judge()1)/如果白棋的子较多,则白棋获胜JOptionPane.showMessageDialog(null, 游戏结束,白棋获胜);jilu.setText(游戏结束,白棋获胜 );else if(judge()0=judge()1)JOptionPane.showMessageDialog(null, 平局);jilu.setText(游戏结束,平局 );return;JAVA 基础课程设计实验报告- 11 -/* 判断输赢的方法,如果黑棋多则黑棋获胜,否则白棋获胜* return 黑棋和白棋的数目*/public int judge()int count=new int2;for(int i=0;iChess.rows-1;i+)for(int j=0;jChess.cols-1;j+)if(Chess.chessij=1)count0+;/计算黑棋的个数else if(Chess.chessij=-1)count1+;/计算白棋的个数return count;/* 判断棋盘是否已满的方法*/public boolean full()if(te=2)/如果双方都不能下子,则游戏结束return true;elsefor(int i=0;iChess.rows-1;i+)for(int j=0;jChess.cols-1;j+)/如果有一个地方是空的则返回falseif(Chess.chessij=0)return false;return true;/*判断当前棋子的下法还有多少种*return 返回下法的总数*/public int Check(int a)int n=0;通过 for 循环记录黑棋和白棋的个数JAVA 基础课程设计实验报告- 12 -for(int i=0;iChess.chess.length;i+)for(int j=0;jChess.chessi.length;j+)if(Chess.chessij!=0)/检测棋盘中的空白处continue;elseChess.chessij=a;/判断是否可以下棋if(hengYou(i, j) != null | hengZuo(i, j) != null| hengShang(i, j) != null | hengXia(i, j) != null| xieyouS(i, j)!= null | xieyouX(i, j) != null| xiezuoS(i, j)!= null | xiezuoX(i, j) != null)Chess.chessij=0;n+;/如果有一个地方可以下子,则n+1elseChess.chessij=0;return n;/* 检测相同颜色*/* 改变两棋子之间的棋子的颜色直线*/public void paintChess(int r1, int c1, int r2, int c2) / 横向if (c1 = c2) for (int k = Math.min(r1, r2) + 1; k Math.max(r1, r2); k+) Chess.chesskc1 = Chess.chessr1c1;change+;/ 纵向if (r1 = r2) for (int k = Math.min(c1, c2) + 1; k Math.max(c1, c2); k+) Chess.chessr1k = Chess.chessr1c1;change+;/*用 for 结构和判断是否可以下棋的方法来得到可以下棋的位置有哪些。下列改变颜色的方法中, 参数分别表示当前下棋的坐标, 和与下棋位置相同颜色棋子的坐标。JAVA 基础课程设计实验报告- 13 -* 改变两棋子之间的棋子的颜色斜线右上*/public void paintChess1(int r1, int c1, int r2, int c2) for (int k = Math.min(r1, r2) + 1, v = Math.max(c1, c2) - 1; k Math.max(r1, r2); k+, v-) Chess.chesskv = Chess.chessr1c1;change+;/* 改变两棋子之间的棋子的颜色斜线右下*/public void paintChess2(int r1, int c1, int r2, int c2) for (int k = Math.min(r1, r2) + 1, v = Math.min(c1, c2) + 1; k Math.min(r1, r2); k-, v-) Chess.chesskv = Chess.chessr1c1;change+;/* 改变两棋子之间的棋子的颜色斜线左下*/public void paintChess4(int r1, int c1, int r2, int c2) for (int k = Math.min(r1, r2) + 1, v = Math.max(c1, c2) - 1; k = Math.max(r1, r2); k+, v-) Chess.chesskv = Chess.chessr1c1;change+;/* 向右检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回NULL*/JAVA 基础课程设计实验报告- 14 -public int hengYou(int x, int y) int r = -2;int i;/ 向右for (i = x + 1; i = 0; i-) if (Chess.chessiy != 1 & Chess.chessiy != -1) break;if (Chess.chessiy = Chess.chessxy) r = i;break;if (r != -2 & Chess.chessx - 1y != Chess.chessiy) return new int r, y ; else return null;/*JAVA 基础课程设计实验报告- 15 -* 向上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回NULL*/public int hengShang(int x, int y) int r = -2;int i;/ 向上for (i = y - 1; i = 0; i-) if (Chess.chessxi = 0) break;if (Chess.chessxi = Chess.chessxy) r = i;break;if (r != -2 & Chess.chessxy - 1 != Chess.chessxi) return new int x, r ; else return null;/* 向上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回NULL*/public int hengShang1(int x, int y) int r = -2;int i;/ 向上for (i = y - 1; i = 0; i-) if (Chess.chessxi = 0) break;if (Chess.chessxi = Chess.chessxy) r = i;break;if (r != -2 & Chess.chessxy - 1 != Chess.chessxi) / 改变中间的子paintChess(x, y, x, r);return new int x, r ; else return null;JAVA 基础课程设计实验报告- 16 -/* 向下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回NULL*/public int hengXia(int x, int y) int r = -2;int i;/ 向下for (i = y + 1; i Chess.rows-1; i+) if (Chess.chessxi = 0) break;if (Chess.chessxi = Chess.chessxy) r = i;break;if (r != -2 & Chess.chessxy + 1 != Chess.chessxi) return new int x, r ; else return null;/* 向下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回NULL*/public int hengXia1(int x, int y) int r = -2;int i;/ 向下for (i = y + 1; i Chess.rows-1; i+) if (Chess.chessxi = 0) break;if (Chess.chessxi = Chess.chessxy) r = i;break;if (r != -2 & Chess.chessxy + 1 != Chess.chessxi) / 改变中间的子paintChess(x, y, x, r);return new int x, r ;JAVA 基础课程设计实验报告- 17 - else return null;/* 斜右上方向*/public int xieyouS(int x, int y) / 向上int r = -2, s = -2;int i, j;for (i = x + 1, j = y - 1; i = 0; i+, j-) if (Chess.chessij = 0) break;if (Chess.chessij = Chess.chessxy) r = i;s = j;break;if (r != -2 & s != -2& Chess.chessx + 1y - 1 != Chess.chessij) return new int r, s ; else return null;/* 斜右下方向*/public int xieyouX(int x, int y) / 向下int r = -2, s = -2;int i, j;for (i = x + 1, j = y + 1; i Chess.rows-1 & j = 0 & j = 0; i-, j-) if (Chess.chessij = 0) break;if (Chess.chessij = Chess.chessxy) r = i;s = j;break;if (r != -2 & s != -2& Chess.chessx - 1y - 1 != Chess.chessij) return new int r, s ; else return null;/* 斜左下方向*/public int xiezuoX(int x, int y) / 向下int r = -2, s = -2;int i, j;for (i = x - 1, j = y + 1; i = 0 & j Chess.cols-1; i-, j+) if (Chess.chessij = 0) break;JAVA 基础课程设计实验报告- 19 -if (Chess.chessij = Chess.chessxy) r = i;s = j;break;if (r != -2 & s != -2& Chess.chessx - 1y + 1 != Chess.chessij) return new int r, s ; else return null;/* 向右检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回NULL*/public int hengYou1(int x, int y) int r = -2;int i;/ 向右for (i = x + 1; i = 0; i-) if (Chess.chessiy != 1 & Chess.chessiy != -1) break;if (Chess.chessiy = Chess.chessxy) r = i;break;if (r != -2 & Chess.chessx - 1y != Chess.chessiy) / 改变中间的子paintChess(x, y, r, y);return new int r, y ; else return null;/* 斜右上方向*/public int xieyou1(int x, int y) / 向上int r = -2, s = -2;int i, j;for (i = x + 1, j = y - 1; i = 0; i+, j-) if (Chess.chessij = 0) break;if (Chess.chessij = Chess.chessxy) r = i;s = j;break;if (r != -2 & s != -2& Chess.chessx + 1y - 1 != Chess.chessij) / 改变中间的子paintChess1(x, y, i, j);return new int r, s ; else return null;JAVA 基础课程设计实验报告- 21 -/* 斜右下方向*/public int xieyou2(int x, int y) / 向下int r = -2, s = -2;int i, j;for (i = x + 1, j = y + 1; i Chess.rows-1 & j = 0 & j = 0; i-, j-) if (Chess.chessij = 0) break;if (Chess.chessij = Chess.chessxy) r = i;s = j;break;JAVA 基础课程设计实验报告- 22 -if (r != -2 & s != -2& Chess.chessx - 1y - 1 != Chess.chessij) / 改变中间的子paintChess3(x, y, i, j);return new int r, s ; else return null;/* 斜左下方向*/public int xiezuo2(int x, int y) / 向下int r = -2, s = -2;int i, j;for (i = x - 1, j = y + 1; i = 0 & j Chess.cols-1; i-, j+) if (Chess.chessij = 0) break;if (Chess.chessij = Chess.chessxy) r = i;s = j;break;if (r != -2 & s != -2& Chess.chessx - 1y + 1 != Chess.chessij) / 改变中间的子paintChess4(x, y, i, j);return new int r, s ; else return null;JAVA 基础课程设计实验报告- 23 -第 4 章 测试与实验结果人人对战测试:1.下棋出错图:2.黑棋下:第 5 章 结束语通过两周的课程设计, 我学到了很多, 特别是对于团队合作的重要性有了更深的了解。在我们一个团队考虑做什么题目时,每个人都提出自己的意见,综合我们自己的实力和水平,选了这个黑白棋游戏,当时我们也很纠结,不知道选哪个,因为提出很多个题目给我们选择,好在我们最后果断的选择了它,毕竟这个题目在我们能力范围之内。在设计这个游戏过程中,最主要的是将黑白棋的规则通过 java 代码表示出来,其中还有人人对战,背景设置,菜单选项等功能需要实现,这个过程中就体现出团队的重要性,每个人都有自己负责的一部分,分工明确,这让游戏设计的进程大大加快,也让我更加了解我负责的那部分代码,加深了我对 Java 的了解,也学到了更多知识。JAVA 基础课程设计实验报告- 24 -参考文献1 於东军杨静宇编著Java 程序设计与应用开发清华大学出版社2 辛运帏编著Java 语言程序设计(第二版).【M】.人民邮电出版社3 王鹏编著JavaSwing 图形界面开发与案例详解.【M】.清华大学出版社,20083 辛运帏编著Java 语言程序设计例题解析与实验指导(第二版).【M】.人民邮电出版社

    注意事项

    本文(课程设计报告(JAVA程序设计).pdf)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开