五子棋程序设计报告.docx
《五子棋程序设计报告.docx》由会员分享,可在线阅读,更多相关《五子棋程序设计报告.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上宜宾学院面向对象课程设计 学 院:_计算机与信息工程学院_ 班 级: 2014级6班 学生姓名: 郑亮 学 号: 设计地点(单位)_宜宾学院_设计题目:_双人五子棋_ 完成日期: 2015年 12月 5日 目录双人五子棋游戏设计报告书1 问题要求及任务描述1.1题目要求双人五子棋游戏1.2 主要任务1独立设计、编制、调试出一款双人五子棋游戏,并单独完成其中一定量的函数模块。 2要求该游戏具有趣味性和可操作性,能够正常运行。其中用到Java语言中的各种语句、结构。(如其中需要注意全局变量和局部变量的申明,数组的使用等) 3双人五子棋要求能够进入可视化界面,二人对弈,当有
2、五颗同色棋子相连时,判断出输赢等一系列游戏流程。2 解决问题的主要思路和方法2.1 关键问题1棋盘的绘制2棋子的绘制,必须落在棋盘的交叉点处3有棋子的地方不能重复落子4棋子的黑白交替5五子连珠的判断(即游戏输赢判断)2.2 拟采用解决问题的方法及算法1棋盘的绘制:可以用一层for 循环通过分别对X,Y 坐标设置相应的增量来绘制棋盘的横线和竖线。2绘制棋子:通过填充一个椭圆的方式来绘制棋子,棋子的落子位子:首先定义一个二维数组a,用二维数组的两个参数来对应一个交叉点的X,Y虚坐标,通过鼠标点击的位置所得坐标来整除棋盘格子的宽度。这样就得到了鼠标点击的位置的最近的一个交叉的位置。然后通过交叉点的位
3、置信息,以交叉点为圆心来绘制相应的棋子。3有棋子的位置不能重复落子:可以给二维数组a付初值 为“0”,当 axy = 0 时表示无子可以落子,当axy ! = 0 时就不能落子。4棋子的黑白交替:可以定义一个布尔型变量 Order 当为真时就为 :黑子 Order 为假时就为 :白子。5五子连珠的判断:首先定义一个整形变量 color 来存放棋子的颜色。先对color进行赋值。横向的判断是定义count1 来记录棋子个数,当横向左右有相同颜色的棋子就让count1加上1,当count1 = 5 时五子连珠成功,结束游戏。其它纵向和斜向方法相同。2.3主要算法和处理流程图以及类图等类视图:算法处
4、理流程图3 程序实现3.1 程序实现时应考虑的问题1. 根据所选题目,首先设计模块图2. 画出主程序和主要模块的流程图3.2 主要源代码及说明3.2.1 总体设计主要包括的类有两个个:Myframe, MyPanel 1、Myframe类: Myframe类是java版五子棋的主框架,程序的启动类。 其中包括游戏界面的创建、按钮的设置、相关的事件监听器设置、游戏的启动、实现重新游戏。 2、MyPanel类: MyPanel类主要实现的是棋盘的绘制、创建数组存放棋子的坐标、设置只能在棋盘内可以落子、实现判断黑白棋的输赢。3.2.1 详细设计1 .Myframe类变量定义:private MyPa
5、nel; /新建一个自定义的Jpanelpublic JButton btnReset; /创建新游戏按钮public JButton btnExit;/创建退出public JButton btnMin;/创建最小化按钮public JButton btnBfirst;/创建黑子先按钮public JButton btnWfirst;/创建白子先按钮按钮的监听器和按钮功能实现:/* * 创建新游戏按钮 */btnReset = new JButton(u65B0u6E38u620F);btnReset.setFont(f1);btnReset.addMouseListener(new Mou
6、seAdapter() Overridepublic void mouseClicked(MouseEvent arg0) myPanel.Reset(); /调用重置棋盘的函数myPanel.canPlay = true; /开始游戏myPanel.repeat = true;/解决重复点击设置颜色按钮repaint();/调用重绘函数);btnReset.setBounds(432, 351, 142, 58);myPanel.add(btnReset);btnReset.setUI(new MyButtonUI();btnReset.setBackground(new Color(250
7、, 154, 81, 240);/* * 创建退出按钮 */btnExit = new JButton(u9000u51FA); btnExit.setFont(f2);btnExit.setBounds(506, 415, 68, 39);myPanel.add(btnExit);btnExit.setUI(new MyButtonUI(); btnExit.setBackground(new Color(250, 154, 81, 240);btnExit.addMouseListener(new MouseAdapter() /实现按钮单击退出的功能Overridepublic void
8、 mouseClicked(MouseEvent arg0) System.exit(0););/* * 创建最小化按钮 */btnMin = new JButton(u9690u85CF); btnMin.setFont(f2);btnMin.setBounds(432, 415, 68, 39);myPanel.add(btnMin);btnMin.setUI(new MyButtonUI();btnMin.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) /实现单击按钮窗口
9、最小化的功能setExtendedState(JFrame.ICONIFIED););btnMin.setBackground(new Color(250, 154, 81, 240);/* * 黑子优先按钮 */btnBfirst = new JButton(u9ED1u5148);btnBfirst.setFont(f2);btnBfirst.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent arg0) if(myPanel.repeat)boolean b = true;myPa
10、nel.setOrder(b); /设置落子顺序的函数,真伪黑先,假为白myPanel.repeat = false;);btnBfirst.setUI(new MyButtonUI();btnBfirst.setBackground(new Color(250, 154, 81, 240);btnBfirst.setBounds(506, 50, 68, 39);myPanel.add(btnBfirst);/* * 白子优先按钮 */btnWfirst = new JButton(u767Du5148);btnWfirst.setFont(f2);btnWfirst.addMouseLis
11、tener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent arg0) if(myPanel.repeat)boolean b = false;myPanel.setOrder(b); /设置落子顺序的函数,真伪黑先,假为白线。 myPanel.repeat = false;);btnWfirst.setUI(new MyButtonUI();btnWfirst.setBackground(new Color(250, 154, 81, 240);btnWfirst.setBounds(432, 50, 68, 39
12、);myPanel.add(btnWfirst);1 .MyPanel类变量定义:private int ChessRadius = 14; /棋子半径private int GridNum = 20 ; /棋盘格子数private int GridWidth = 20; / 棋盘格子宽度public int x = 0;public int y = 0; / 棋子坐标public int a = new intGridNumGridNum;/ 保存下过的棋子位子,“0”表示无子,“1”表示黑子, “2”表示白子public boolean Order; / 真为黑方先,假为白方先public
13、 boolean repeat = false; /解决重复 点击设置颜色的按钮public String s; / 显示游戏顺序public boolean canPlay = false; /为真就开始游戏功能实现:public void setOrder(boolean Order) / 设置落子顺序this.Order = Order;public void Reset() / 重置棋盘for (int i = 0; i GridNum; i+) for (int j = 0; j = 35 & x = 60 & y = 440) x = (x - 30) / GridWidth;y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 五子棋 程序设计 报告
限制150内