- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java连连看含代码
JAVA连连看游戏
一、功能描述
通过JAVA编一个连连看程序,通过鼠标点击使相同两个图像消掉。程序实现以下几个功能:
1、判断鼠标点击的两张图片是否相同;
2、判断2张图片是否可以相连;
3、判断时间;
4、判断是否使用炸弹,炸弹剩余数目,自动生成路径消除两张相同图片;
5、判断剩余图片,是否胜利。
二、方案:
概要设计:程序分为6个部分:
第一:主窗口部分(MainFrame)定义了程序用函数,实现了程序菜单(initMenuBar)的使用。
第二:按键部分(ChessButton)定义按键的位置,代表的值。
第三:游戏部分(MapUI)判断点击的图片,判断两图片是否可连,是否相同。判断是否胜利。实现炸弹功能。
第四:数组(Settings)确定了游戏各种参数属性。
第五:取值部分(ArrayPoint)定义图片的值。
第六:算法部分(Map)通过算法确定两张图片是否连通。
详细设计:运行效果与程序发布:本程序含有6个JAVA源程序,一个图片文件夹。通过JCreator Pro运行及修改程序。把ChessButton.java,MainFrame.java和MapUI.java文件保存在同一文件夹(如:D:\lianliankan\)。把Settings.java放入一层文件加的\cn\elva文件夹下(如:D:\lianliankan\cn\elva)。把ArrayPoint.java和Map.java放入文件夹的\cn\elva\model文件夹中。在文件夹中建立一个叫Resource的文件夹存放图片。运行JCreator Pro编译JAVA程序,生成相应的字节码文件(.class)文件。然后,用java解释器运行主类:D:\lianliankan\java MainFrame。功能模块图如上。
程序通过对用户点击的图片进行判断,确定两张图片的路径,判断两张图片是否相同,是否可以相连,如果可以相连并且两张图片相同,那么消除两张图片,否则认为用户没点图片,重新选择。系统会在用户开始的时候进行计时,如果用户在限定时间内没有完成(还有图片枚消除),那么系统提示用户失败信息,反之(图片全部消除),提示用户胜利信息。在游戏过程中,用户可以使用炸弹,如果炸弹存在(炸弹数部为零)那么消除2块同样的图片,否则提示用户没有炸弹。
定义程序的必要变量的初值使每回开始新游戏,这些初值都会还原:
行数:public static final int ROWS = 8;
列数:public static final int COLUMNS=8;
图片后缀名:public static final String RELEX=.gif;
每局所花时间(秒):public static final int PERTIME = 600;
判断的时间间隔:public static final int PER = 1;
炸弹的使用次数:public static final int BOMBCOUNT = 3;
把每一个图片位置都定义为一个按钮,这样在鼠标点击的时候就能确定用户点击的是哪张图片。
public class ChessButton extends JButton
{
// 按钮所对应的数组中的值和位置,用ArrayPoint结构来表示
protected ArrayPoint point = null;
/**
* 构造函数,指定按钮所代表的值和位置
* @param row 所在行号
* @param col 所在列号
* @param value 代表的值
*/
public ChessButton(int row, int col, int value)
{this(new ArrayPoint(row, col, value));}
/**
* 构造函数
* @param point 值和位置的数据结构
*/
public ChessButton(ArrayPoint point){this.point = point;
String name =Resource/+point.getValue() + Settings.RELEX;
URL url = ChessButton.class.getResource(name);
// System.out.println(url);
ImageIcon icon = new ImageIcon( url );
this.setIcon(icon); }
/**
* 构造函数,使用默认值
*/
public ChessButton()
{t
您可能关注的文档
- java的发展和java的意义.doc
- java代码练习.docx
- Java项目开发——Chat即时聊天系统.doc
- 美学第7章:喜剧.ppt
- 用Eclipse中将Java项目生成、打包为jar.doc
- iPhone4美学特征分析.ppt
- 美学---透视素材.ppt
- 农村小学特色课堂教学的研究与实践第一阶段计划总结.doc
- 将美学落地—美学与销售.pptx
- 第一讲 绪论 美学.ppt
- 2022-2023年军队文职人员招聘之军队文职教育学综合提升练习试题附答案详解.docx
- 2022-2023年军队文职人员招聘之军队文职教育学综合提升练习试题包括详细解答.docx
- 2022-2023年军队文职人员招聘之军队文职教育学综合提升练习试题含答案讲解.docx
- 二级建造师之二建矿业工程实务试卷附答案.docx
- 二级建造师之二建矿业工程实务试卷和答案.docx
- 二级建造师之二建矿业工程实务试卷附带答案.docx
- 二级建造师之二建矿业工程实务试卷包含答案.docx
- 二级建造师之二建矿业工程实务试卷提供答案解析.docx
- 二级建造师之二建矿业工程实务模拟卷和答案.docx
- 二级建造师之二建矿业工程实务检测卷附答案.docx
文档评论(0)