- 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
您可能关注的文档
最近下载
- 汽车电子控制技术试题89865.doc VIP
- 《电力电子系统仿真——基于PLECS》9-PWM控制建模与仿真.pptx VIP
- 参观流程图(通用版).docx
- 商品材料出入库管理登记表Excel表格.xlsx VIP
- 2019年国际刑事法院模拟法庭中文赛赛题.pdf VIP
- 苏州大学《半导体器件物理》2020-2021第一学期期末试卷.pdf
- 2024年甲硝唑药物项目调研分析报告.docx
- 幼儿园:小山坡游戏案例——斜坡大作战.docx
- 耳鼻喉科题库及答案1000道题.docx VIP
- 幼儿园幼儿教师业务知识学习培训PPT内容:基于《评估指南》了解“儿童视角”与“儿童的视角”.pptx VIP
文档评论(0)