个人项目结对作业
题目 五子棋运算设计程序
学院:信息学院
班级:计科(高职)13-3
学号: 201303014101
姓名: 李明瑞
2015 年 5 月 15 日
结对分工及过程:李明瑞做的代码,王海涛做的项目测试。下面是所做过程。
github地址:
https://github.com/keaixiaotaoqi66/ |
一、实践目的
1.熟悉Java GUI相关类的API。
2.理解并实践事件驱动程序设计中的监听器、监听器方法、监听器适配器接口。
二、实践要求
利用Java GUI的组件类、容器类和辅助类设计所选项目的用户界面,并在深入理解并掌握事件驱动程序设计原理的基础上,实现事件驱动的程序设计。
三、项目需求
所选项目名称:五子棋运算设计程序
四、项目设计方案
1、界面棋盘设计
在对棋盘界面设计方面要考虑简洁友好,符合游戏者需求。棋子的设计方面系统中设置了两种棋子颜色,white或者black, 游戏者可自行选择。棋子怎样画出来,怎样使棋子按我们所想的方式来绘制出来是设计的主要难题。运行时要求当每次点击鼠标的时候就在点击鼠标的地方画一个棋子,所以得定义一个棋子的类使点击鼠标时系统把棋子绘制出来。这样主界面里的棋子就确定了,而且也确定了几个所需要的类。可以先定义好这些类了。
有了以上的准备就可以把棋盘绘制出来了,下棋时每次在适当位置点击鼠标的时候就在所点击的位置上画出你这个角色的颜色,然后计算机会自动的下棋,计算机自动下棋要有一个控制变量来控制能不能下棋。人可以随意的下子,可是计算机就要计算在哪个位置下子了。这里由计算机下子的算法来确定,人人对战的话就不象单机游戏一样,要计算机来判断人下子之后计算机下那一个地方了,人人对战只要在双方下子的时候判断赢棋情况,当然还要同步的控制两个人下棋的顺序,这样的话就要用到线程了,各自都继承或实现线程类或接口,以便各自能随时单独控制接发消息。
2. 总体设计
为实现五子棋运算测试程序设计需求,需要实现的FiveChessAppletDemo类、ChessFrame类、ChessModel类、MainPanel类、ChessWindowEvent类等功能。
3.类组合结构图
给出各个类之间的整体组合结构
图1所示
五、核心算法详细设计
各个类的简要描述(在整个软件中的地位及实现功能的简要描述,其继承层次关系及所实现的接口等);详细设计每个类的成员变量、构造方法与方法;并根据详细设计给出每个类的实现代码。示例如下:
(1)FiveChessAppletDemo类
main方法创建了ChessFrame类的一个实例对象(cf),并启动屏幕显示显示该实例对象。定义了一个名为 ChessFrame 的监听类实现 ActionListener
(2)ChessFrame类
创建五子棋游戏主窗体和菜单
(3)ChessModel类
实现了整个五子棋程序算法的核心
1、规定棋盘的宽度、高度、棋盘的模式
private int width,height,modeChess;
2、规定棋盘方格的横向、纵向坐标
private int x=0,y=0;
3、棋盘方格的横向、纵向坐标所对应的棋子颜色,
数组arrMapShow只有3个值:1,2,3,-1,
其中1代表该棋盘方格上下的棋子为黑子,
2代表该棋盘方格上下的棋子为白子,
3代表为该棋盘方格上没有棋子,
-1代表该棋盘方格不能够下棋子
private int[][] arrMapShow;
4、交换棋手的标识,棋盘方格上是否有棋子的标识符
private boolean isOdd,isExist;
(4)MainPanel类
1、构建一个面板,在该面板上画上棋盘;
2、处理在该棋盘上的鼠标事件(如鼠标左键点击、鼠标右键点击、鼠标拖动等)
(5)ChessWindowEvent类
响应退出窗口
六、源代码
七、使用说明与运行结果截图
(1)五子棋游戏的主界面
图2程序主界面
图3“游戏”栏中的选项
图4视图中的各个选项
图5帮助栏中的选项
(5)单击“帮助”栏中的“关于”选项时弹出的界面
图6关于选项弹出的界面
(6)五子棋游戏结束界面
图7游戏结束界面
八、实践总结
通过这次课程设计,我进一步加深对基础理论的理解,扩大专业知识面,对收集资料、查阅文献、方案制定等实践方面得到了很好的锻练,促进对所学知识应用能力的提高。同时我渐渐的复习了Java使用方法和编程语法,之后的编程过程也相对得心应手,基本完成了预期计划的要求。在此感谢我的指导老师兼班主任—赵培英老师,她严谨的治学态度深深的影响了我,使我受益匪浅!
结对人博客园地址:
[zhuifeng123](http://www.cnblogs.com/zhuifeng123/) |