1、 1 设计名称:设计名称:五子棋 日期日期:2014/12/18 设计内容:设计内容: 设计一个简单 GUI 界面,实现黑子,白子五子棋对弈,横竖或斜连起来有五 个便算赢,能实现判断输赢和开始和重置功能。 设计目的与要求:设计目的与要求: 1.1.基本要求基本要求 (1) 设计 GUI 界面,网格为 15*15,交叉线上均可落子; (2) 可选择白子先行或黑子先行; (3) 能实现开始和重置功能; (4) 可以自动判断输赢; (5) 简单的游戏规则介绍; (6) 可以打开和关闭窗口。 2. 2. 实现目的实现目的 (1)设计简单的图形界面; (2)用户可通过简介了解游戏规则; (2)用户可自行
2、选择执白子或执黑子; (3)可以实现开始和重置; (4)电脑可以自动判断输赢; (5)用户可使用鼠标落子,可落在任意交叉线上。 2 设计环境或器材、原理与说明:设计环境或器材、原理与说明: 1. 设计环境:设计环境: 硬件环境: CPU:Intel 奔腾双核 E5200 主频 2.5GHz 内存:2G 软件环境: 操作系统:Windows 7 编程环境 JDK7.0 开发工具:Eclipse SDK 2. 使用环境(用户运行环境) 硬件环境: CPU 主频在 500MHZ 以上,内存在 128M 以上 软件环境: JAVA 运行环境 + Windows XP 戒 Windows 2000 以上
3、操作系统 3 设计过程(步骤)或程序代码(可以加页): 1.1.需求分析需求分析 1.1 1.1 界面及布局设计界面及布局设计 系统的整体布局为:左边为 15*15 的棋盘,右面为 “游戏开始” 按钮、 “重 置游戏”按钮以及“白字先”和“黑子先”选择按钮,按钮下方是输赢提示标签 “白子/黑子赢了! ” ,最下面是操作简介。 1.2 1.2 所用到的方法所用到的方法 表一 方法与功能表 4 1.3 1.3 方法间的调用方法间的调用 init() actionPerformed(Actio nEvent e) setDown(int x, int y) gameStart() gameInit(
4、) reStart() gameWinx(int x, int y) gameWiny(int x, int y) gameWinr(int x, int y) gameWinl(int x, int y) mouseClicked(Mo useEvent e) mouseEntered(Mouse Event e) 图一 方法的调用关系 5 2. 2. 总体设计总体设计 进入游戏 白字先黑子先 选择首子颜色 游戏开始重置游戏 开始下棋 游戏结束 提示赢家 图二 总体流程图 6 3.3.程序块功能分析程序块功能分析 public class GoBang extends Applet impl
5、ements ActionListener, MouseListener, MouseMotionListener, ItemListener /绘制棋盘绘制棋盘 public void paint(Graphics g) g.setColor(Color.lightGray);/棋盘背景颜色棋盘背景颜色 g.fill3DRect(10, 10, 300, 300, true); g.setColor(Color.black);/线条颜色线条颜色 g.drawString(“操作简介:操作简介:“,330,260); g.drawString(“形成五连字即胜,形成五连字即胜,“,330,28
6、0); g.drawString(“横竖斜均行横竖斜均行“,330,300); for (int i = 1; i 10) x1 += 20; if (y1 % 20 10) y1 += 20; x1 = x1 / 20 * 20; y1 = y1 / 20 * 20; setDown(x1, y1);/调用调用 setDown 方法方法 8 /落子落子 public void setDown(int x, int y) if (!isStart) / 判断游戏未开始判断游戏未开始 return; if (bodyArrayx / 20y / 20 != 0) return; Graphics g = getGraphics();/创建创建 Graphics 类的对象类的对象 if (color = 1)/ 判断黑子还是白子判断黑子还是白子 g.setColor(Color.black); color = 0; else g.setColor(Color.white); color