Java实现游戏连连看(有源代码)

JAVA语言实现连连看游戏 1.课程设计目的 Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。 学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力 2.设计方案论证 2.1设计思路 2.1.1用户可以通过点击菜单中的“开始游戏”选项,开始新游戏程序。程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。 2.1.2用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。 2.1.3用户也可使通过使用“炸弹”功能进行消除图片。方法是点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片。 2.1.4 炸弹数目是有限的,默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色(用户不可使用)。 2.1.5当系统开始游戏后,系统会在后台记录时间,如果在用户还没有消除所有图片时,系统时间到了,那么系统会弹出对话框,提示用户,时间到了,游戏失败。 2.1.6 当用户点击确定后,系统还会弹出对话框询问用户是否重新开始,用户选择“是”时,系统会开始新游戏;当用户选择“否”时,系统会返回开始界面;当用户选择“取消”时,系统会返回提示时间到的界面。 2.1.6 如果在时间未到时,用户使所有的图片都消失(两两消除,直到最后一对),系统会提示用户游戏以通过,点“确定”后回到开始界面。 2.2设计方法 在设计连连看小游戏是,需要编写6个Java源文件:MainFrame.java,ChessButton.java,MapUI.java,Settings.java,ArrayPoint.java,Map.java。 2.2.1 MainFrame.java 主窗口部分定义了程序用函数,实现了程序菜单(initMenuBar)的使用。 2.2.2 ChessButton.java 按键部分定义按键的位置,代表的值。 2.2.3 MapUI.java 游戏部分判断点击的图片,判断两图片是否可连,是否相同。判断是否胜利。实现炸弹功能。 2.2.4 Settings.java 数组确定了游戏各种参数属性。 2.2.5 ArrayPoint.java 取值部分定义图片的值。 2.2.6 Map.java 算法部分通过算法确定两张图片是否连通。 2.3功能模块 此设计共有以下几个功能模块。 2.3.1 开始游戏 程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。 2.3.2 使用“炸弹” 用户点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片。 2.3.3 限制炸弹“数目” 炸弹 默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色(用户不可使用)。 2.3.4 对用户游戏时的判断 用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。 2.4流程图如下 图2 主函数流程图 开始程序 开始游戏 接收用户点击 是否使用炸弹 Y N 是否二次点击 N 消除点击计数 两张图片 是否相同 Y N 消除两张一样的 可以相连的图片 Y 两张图片是否可以相连 N 消除用户点击 的两张图片 Y 消除点击计数 是否还有图 片未消除 Y 结束 N 图3 游戏进行流程图 图4 使用炸弹流程图 图5 计算时间流程图 2.5类、方法、属性说明 成员变量 成员变量描述 变量类型 名称 行数 int ROWS 列数 int COLUMNS 图片后缀名 string RELEX 每局所花时间(秒) int PERTIME 判断的时间间隔 int PER 炸弹的使用次数 int BOMBCOUNT 方法 方法名 功能 备注 MenuBar() 实用程序菜单 无备注 Bomb() 设置炸弹 无备注 Point() 定义按键的位置 无备注 Chesses() 初步定义游戏界面,功能 无备注 Timer() 时间限制 无备注 3.设计结果与分析 用户可以通过点击菜单中的“开始游戏”选

Java实现连连看源代码文档_Java实现游戏连连看(有源代码)相关推荐

  1. Java实现连连看源代码文档_JAVA实现连连看游戏

    文件名大小更新时间 JAVA实现连连看游戏\java连连看游戏设计介绍 幻灯片.pptx22697322018-06-09 JAVA实现连连看游戏\源代码\JAVA连连看游戏设计 源代码\.class ...

  2. java循环导出word文档_Java使用freemarker导出word文档

    通过freemarker,以及JAVA,导出word文档. 共分为三步: 第一步:创建模板文件 第二步:通过JAVA创建返回值. 第三步:执行 分别介绍如下: 第一步: 首先创建word文档,按照想要 ...

  3. java导出html word文档_java生成带html样式的word文件

    最近在项目中需要将通过富文本编辑器处理过的文字转换为Word,查了很久,大家通常的解决办法是使用Jacob或POI等组件直接生成Word,但是都无法将富文本编辑器处理过的文字保留样式并保存为Word, ...

  4. java web 操作word文档_Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜.基于Java的解决方式也是非常多的,包含使用Jacob.Apache POI.Java2Word.iText等各种方式,事实上在从Office 2003開始 ...

  5. java 预览word文档_Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  6. java导出生成word文档_java使用freemarker 生成word文档

    最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的样式也不美观,于是选择了另一种方式--- ...

  7. java对外发布接口文档_java之接口文档规范

    一.xxxxxx获取指定任务爬取的所有url的接口 接口名称:xxxxxx获取指定任务爬取的所有url的接口 访问链接: http://IP:PORT/crwalTask/findUrlExcepti ...

  8. 源代码文档生成 Doxygen介绍(转载)

    源代码文档生成 Doxygen介绍(转载) 收藏 Doxygen介绍 一.Doxygen介绍 在项目开发过程中最重要的是如何和团队中其它成员沟通,如何在项目完成后减低维护成本,随着公司的人员流动,怎样 ...

  9. ras的c语言源代码文档,µMore(µITRON操作系统)--功能概况

    µMore™ (µITRON操作系统) 概览 μMore是一种专门为下一代移动设备设计的实时操作系统,与μITRON4.0标准应用概要兼容.μMore具有轻松节电功能,并附带了爱可信的AVE-TCP网 ...

最新文章

  1. 解决ScrollView嵌套ListView高度的问题
  2. python在哪写代码-python的代码写在哪里,怎么样运行python代码
  3. 【Win 10 应用开发】UI Composition 札记(二):基本构件
  4. python中字符串编码转换
  5. ABAP程序里设置外部断点,调试时断点怎么也触发不了,该怎么办
  6. struct sockaddr_nl 结构体 由来、含义以及使用——获取Linux路由表
  7. 一步步编写操作系统 46 linux的elf可执行文件格式1
  8. 机器学习之最大似然估计(MLE)和最大后验概率估计(MAP)
  9. 哪种编程语言好找工作_哪种编程语言可以工作? 为了周末?
  10. 一阶系统开环传递函数表达式_自控原理之系统辨识--入门介绍
  11. python如何运行代码_python上怎么跑(运行)代码
  12. 有向图的强连通分量--Tarjan算法---代码分析
  13. 6线AB相马达与ARDUINO 和 L298N电机之间
  14. 独角兽影视APP系统源码/双端影视APP源码
  15. SaaS的收入模型有哪些?终于有人讲明白了
  16. 计算机网络拨号,自动拨号上网的设置方法【图解】
  17. 中缀转后缀并分别计算
  18. 小白重装系统教程_小白U盘重装原版win7系统教程
  19. IMP811REUS/T小秘密
  20. 思特奇2019校招笔试题

热门文章

  1. TOAD连接Oracle数据库失败:OCI_INVALID_HANDLE解决
  2. shell的交互式和非交互式登录
  3. Python基础第一天
  4. The serializable class XXX does not declare a static final serialVersionUID field of type long的警告...
  5. mysql在空闲8小时之后会断开连接(默认情况)
  6. 老陈学 C++ 序列之二: 友元函数
  7. 《容器技术系列》一1.4 Docker运行案例分析
  8. MYSQL中的BlackHole引擎
  9. 面向对象编程从骨子里就有问题——看看名人大家是如何吐槽面向对象的
  10. Lync与Exchange 2013 UM集成:Lync Server配置