《课程设计报告(java程序设计)》由会员分享,可在线阅读,更多相关《课程设计报告(java程序设计)(25页珍藏版)》请在金锄头文库上搜索。
1、河河 南南 城城 建建 学学 院院HenanHenan UniversityUniversity ofof UrbanUrban ConstructionConstruction JAVA 基础课程设计设计说明书课程名称: JAVA 基础课程设计 设计题目: Java 游戏设计黑白棋 指导教师: 陈红军 何宗耀 班 级: 0844141 学 号: 084414119 学生姓名: 管维聪 同组人员: 张欣 林阳 赵阳 计算机科学与工程学院 2016 年 1 月 8 日成 绩: 评 语: 目 录第第 1 章章 选选 题题21.1 题目背景.2 1.2 系统实现的具体分工2 1.2.1 选题2 1.
2、2.2团队分工.2 1.3 开发环境2 第 2 章 设计内容(用例图及类图等)3 2.1 实现功能3 2.2 概要设计.4 2.3 界面设计.5第第 3 章章 系统实现系统实现63.1 涉及知识点.6 3.2 系统运行(主要运行界面抓图).6 3.3 源程序清单(关键代码).7第第 4 章章 测试与实验结果测试与实验结果23第第 5 章章 结束语结束语23参考文献参考文献24第 1 章 选 题1.1 题目背景目前游戏是人们娱乐消遣的途径之一,并且开发一个游戏可以让自己综合运用所学 的知识,也能让自己掌握的知识更加巩固。所以如何设计,开发一个游戏,也是许多 人去热衷研究的。 1.2 系统实现的具
3、体分工1.2.1 选题用户可通过使用界面选择人人对战和人机对战来进行游戏,在游戏界面还能通过自己 的爱好,来选择界面的颜色,还有让用户了解游戏规则的帮助选项。 1.2.2团队分工表 1.1 项目分工一览表 角色姓名承担的具体任务组长张欣设计人机部分组员林阳设计画图部分组员赵阳设计界面部分组员管维聪设计人人部分1.3 开发环境编程工具:JDK+ECLIPSE(+MySQL)计算机:PC操作系统:Microsoft Windows 7.0第 2 章 设计内容(用例图及类图等)2.1 实现功能1. 用户进入界面:用户通过这个界面进入游戏。如图2.菜单功能:提供开始,更改背景,帮助提示 等功能。用户可
4、以使用重新开始游戏,退出游戏,和改变界面背景,观看帮助信息。如图:3. 人人对战:可以进行两个人的对战游戏,玩家和玩家之间可以继续游戏。4人机对战::玩家可以和简单人对战。2.2 概要设计自己的图:Class:ChessListener继承ChessListener :构造函数MousClickedjudge() full() Check(int a) paintChess() paintChess1() paintChess2() paintChess3() paintChess4() hengYou() hengZuo() hengShang() hengShang1() hengXia(
5、) hengXia1() xieyouS()xieyouX() xiezuoS() xiezuoX() hengYou1() hengZuo1() xieyou1() xieyou2() xiezuo1() xiezuo2()MouseAdaper组员林阳的图:组员赵阳的图:2.3 界面设计用户使用界 面人人对战开始功能背景设计功能关于人机对战游戏界 面第 3 章 系统实现3.1 涉及知识点Java 编程,Swing 图形界面设计,继承与多态等。3.2 系统运行(主要运行界面抓图)图 3.1 系统主界面1.用户使用界面:2.人人对战:3.人机对战:3.3 源程序清单(关键代码)import j
6、ava.awt.*; /导入包中的类 import java.awt.event.*; import javax.swing.*;class ChessListener extends MouseAdapter / 继承MouseAdapter类,重写方法 MouseClicked()private Graphics g; /将画布对象传过来 private int xiafa; /记录当前棋子的下法 public static int stata=1;/判断下黑棋还是白棋private int x1,y1; /记录点击处的横坐标和纵坐标 private JLabel jilu; /当前下棋子
7、的人 private JLabel alila; /黑棋棋子数 private JLabel taozila; /白棋棋子数 private Chess ch; /用来刷新棋盘 private int te=0; /特殊情况 private int change; /记录改变的棋子数目 public ChessListener(Graphics g,Chess ch,JLabel jilu,JLabel alila,JLabel taozila) this.g=g; this.ch=ch; this.jilu=jilu; this.alila=alila; this.taozila=taozi
8、la; /点击下棋子 构造函数:用于接受来自 Chess 类的数据,并对 ChessListener 类 进行初始化。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;ijudge()1)/如果黑棋的子较多,则黑棋获胜 JOptionPane.showMessageDialog(null, “游戏结束,黑棋获胜“); jilu.setText(“游戏结束,黑棋获胜
9、“); else if(judge()0 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 = 0; i-) if (Chess.chessiy != 1 if (Chess.chessiy = Chess.chessxy)
10、 r = i; break; if (r != -2 else return null; /* * 向上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回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 else return null; /* * 向上检测是否有相
11、同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回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 return new int x, r ; else return null; /* * 向下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色,否则返回NULL */p
12、ublic int hengXia(int x, int y) int r = -2; int i; / 向下 for (i = y + 1; i = 0; i+, j-) if (Chess.chessij = 0) break; if (Chess.chessij = Chess.chessxy) r = i; s = j; break; if (r != -2 else return null; /* * 斜右下方向 */public int xieyouX(int x, int y) / 向下 int r = -2, s = -2; int i, j; for (i = x + 1,
13、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 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 i-) if (Chess.chessiy != 1 if (Chess.chessiy
14、= Chess.chessxy) r = i; break; if (r != -2 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 return new int r, s ; e