java五子棋设计报告_java五子棋课程设计报告.docx

Java课程设计报告 题目:用java编写五子棋游戏姓名:曾磊学号:20141387036专业:物联网工程 要求: 1.用java编写五子棋的游戏 2.该程序拥有简洁美观的图形化界面,且界面主要由棋盘、标题和游戏操作的按钮三部分组成。另外,该游戏界面的大小是不可变的,程序会自动获取电脑屏幕的大小信息,并且计算出合适的位置居中显示。因为考虑到棋盘和背景图片的显示问题,为防止出现排列错乱,故采用这样的设计方式。3.标题位于界面的最上方;棋盘为19*19的围棋棋盘,位于左下方;按钮包括:“开始游戏” “退出游戏” “游戏说明”,共3个,位于棋盘的右侧4. 在单击鼠标时,在相应的位置显示棋子 ,还能够显示轮到哪一方下棋(规定黑子先下)5. 可以保存棋局,即保存之前下过的棋子6.能够判断游戏胜负,并且弹出窗口提示。一局结束后可以通过“开始游戏”按钮清空棋盘界面,进行下一局。设计思想:本程序主要用到以下3种技术: ⑴ Swing编程 ⑵ ImageIO类的使用 ⑶ Graphics图片的绘制对于这样一个五子棋游戏程序。1.首先我们要用java.Swing和java.awt工具包来设计游戏的用户界面并且绘制图像图形,如制作棋盘。2.此外还要用到ImageIO类来导入和显示图片用作游戏界面的背景,背景图片可以自己设计。3.主体界面制作好了以后,我们就可以添加事件监听,用与监听鼠标相关的类—— MouseListener来在指定区域和位置内利用鼠标点击产生棋子进行游戏。4. 接下来就可以开始设计判定胜负的算法了。5.然后就是按钮功能的实现。6.最后就是调试和测验,看程序有没有什么bug。具体会用到的类和方法会在下面的主程序中一一给予介绍编程过程导入java.awt、java.io和javax.swing工具包,它们包含用于创建用户界面、绘制图形图像、图像导入,鼠标监听的所有分类。import java.awt.Color; //color类用于对游戏界面进行配色import java.awt.Font; //font类提供与字体相关的类和接口。import java.awt.Graphics; //Graphics类提供执行实际的绘制、着色及文本输出的操作功能的基类import java.awt.Toolkit;import java.awt.event.MouseEvent;import java.awt.event.MouseListener; //与监听鼠标相关的类import java.awt.image.BufferedImage; //导入图片的处理类import java.io.File; // 文件和目录路径名的抽象表示形式。import java.io.IOException; //异常类import javax.imageio.ImageIO; //显示图片的类import javax.swing.JFrame; //创建窗体,并且设置其大小,位置等属性import javax.swing.JOptionPane; //与对话框相关的类public class FiveChessFrame extends JFrame implements MouseListener, Runnable {// 获取屏幕的宽度和高度,用以计算出合适的位置将游戏界面居中显示int width = Toolkit.getDefaultToolkit().getScreenSize().width;int height = Toolkit.getDefaultToolkit().getScreenSize().height;// 先将背景图片定义为空BufferedImage bgImage = null;//这里定义的x,y用来保存棋子的坐标int x = 0;int y = 0; 定义一个19*19的二维数组来表示棋盘,其中数据内容 0: 表示这个点并没有棋子, 1: 表示这个点是黑子, 2:表示这个点是白子int[][] allChess = new int[19][19];// 标识当前应该黑棋还是白棋下下一步boolean isBlack = true;// 标识当前游戏是否可以继续boolean canPlay = true;// 保存显示的提示信息,这个信息是用来在界面的棋盘上方显示的String message = "黑方先行";设置五子棋游戏界面的主窗体(位置、大小、居中显示等属性) public FiveChessFrame() { this.setTitle("五子棋--曾磊");this.setSize(500, 500);this.setLocation((width -

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
晓庄学院 《JAVA程序设计课程设计报告 "题 目: " 五子棋游戏的设计与实现 " "姓 名: "野 " "学 号: "12130818 " "班 级: "12软件工程转本2班 " "指导教师: "王峥 " "完成时间 "7月1日 " "成 绩: " " 信息工程学院 2015年6月 目录 1引言1 1.1系统开发背景2 1.1系统开发的目的和意义3 1.2完成的主要工作4 2需求分析和总体设计4 2.1需求分析与设计思路5 2.1.1关键技术说明5 2.1.2需求分析5 2.1.3系统设计方案与思路5 2.1.4系统目录结构说明5 2.2系统功能结构6 3详细设计7 3.1系统模块实现9 4系统运行结果10 5课程设计总结12 五子棋游戏的设计与实现 引言 五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在"尧 造围棋"之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之 处,因为古代五子棋的棋具与围棋是完全相同的。在上古的神话传说中有"女娲造人 ,伏羲做棋"一说,《增山海经》中记载:"休舆之山有石焉,名曰帝台之棋,五色而文 状鹑卵。"善注引三国淳《艺经》中曰:"棋局,纵横各十七道,合二百八十九道,白黑 棋子,各一百五十枚"。这段虽没明讲是何种棋类,但至少知道远古就以漂亮的石头 为棋子。因而规则简单的五子棋也可能出自当时,并是用石子作棋子。亦有传说,五 子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子后代中遍及开来。 1 系统开发背景 在计算机逐步渗入社会生活各个层面的今天,计算机已经成为了人们日常生活中 的一部分,越来越多的人使用计算机办公、娱乐等等。在这其中,系统自带的小游戏 也占据了相当重要的地位,与那些网络游戏和3D游戏相比,它有编写简单容易上手等 特点,非常适合人们在完成工作的时候适当的娱乐要求。这些小游戏大都是以益智和 娱乐为目的,不仅给紧工作的人们以放松,还可以让人们的大脑得到开发。 2 完成的主要工作 设计一个15 15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能: 1.选择黑子先下 2.设置双方下棋总共时长 3.刷新重新开始 4.悔棋 5.认输 6.退出提示 实现一个简单的多用户五子棋的游戏程序,包括如下两个界面 (1)选择对弈桌(执黑、执白)。 (2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负); 1.3需求分析与设计思路 1. 用户需求调查分析 2. 构思代码模块 3. 总体设计 4. 详细设计 5. 代码编写 2需求分析和总体设计 1. 2. 4 需求分析与设计思路 此系统为智力游戏,采用JAVA的MVC模式,根据不同功能划分不同模块,该五子棋 游戏功能虽然简单,然是实现了人机对战,所以从这个角度来说,此款游戏能准确的 计算棋局。虽然系统不大,但是可以实现基本的五子棋功能,以及悔棋。 2.1.2需求分析 五子棋,是一种两人对弈的纯策略型棋类游戏,亦称"串珠"、"连五子";是中国 民间非常熟知的一个古老棋种。相传,它起源于四千多年前的尧帝时期,比围棋的历 史还要悠久。亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在 炎黄子后代中遍及开来。 五子棋发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜; 不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。 2.1.3设计方案与思路 传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为15X15,棋子放置于棋 盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以 上同色棋子连成不间断的一排者为胜。因为传统五子棋在落子后不能移动或拿掉,所 以也可以用纸和笔来进行游戏。 2.1.4系统目录结构说明 对系统包结构、文件结构列表说明,如表2-1、2-2所示。 表2-1主页面表 "包名 "作用 " "src "容纳所有文件 " 表2-2文件表 "文件名 "作用 " "Game.java "运行文件 " "GameFrame.java " " "Cheerup.java " " "PaintPanel.java " " 5 系统功能结构 3.1详细设计 1. 系统模块实现 "按钮 "事件 " "悔棋事件 "class Back implements ActionListener " "认输事件 "class Fail extends JFrame implementsActionListener" "关于事件 "class About extends JFrame implements " " "ActionListener " "设置事件 "class Set implements ActionListener " "退出事件 "classExite

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值