java九宫格游戏实践

1 问题描述

拼图游戏不仅能增强思维能力,提高智力而且富含哲理,有助于修身养性。它既有简单易学的特点,为人民群众喜闻乐见。

设计一款拼图游戏,本游戏主要完成:整幅图的现实,切换整幅图片、随机打乱图片、开始游戏,结束游戏 ;可多用户。

1.1 数据需求

游戏包括界面,基本的控件,有文本框、选择框、按钮等。

用户信息:用户登录需要的账号和密码,新用户注册用到的信息;对玩家信息的记录、保存、读取。

界面信息:图片,九宫格规格;

交互信息:控制游戏的移动;

1.2 功能需求

游戏界面设计:

用户登录,进入游戏界面,有良好的功能可视化界面,有游戏规则介绍。例如有计时和分数的显示,游戏图片替换和打乱图片的按键,显示游戏界面的图像画面,游戏玩家开始游戏、悔一步,重新开始的按键。

原始图像的选择:

游戏开始时,从准备好的图片中,选择想要拼的图片,要有不同难度的图片(可从相似度考虑):可选择重新开始;

随机打乱图像:

选择难度(1,2,3),根据难度将图片分成 33, 55,6*6 的规格,设计算法,随机打乱生成肯定有成功结果的初始化状态九宫格,要求有动态的打乱图片的显示过程(若产生的初始化九宫格无法到达最终状态,应该有提示 3 秒后自动刷新,重新生成);

计时器的设计:

动态显示玩家本局的时间,可选择限时挑战。

移动:

用户可以拖动模块进行交换,直到拼出原图像。

1)通过鼠标点击进行移动操作,动态的展示每一步移动的结果。如果操 作违法,应不做该操作;

2)能够刷新界面;

3)游戏过程中,允许选择悔一步(不可后退多步,若用户悔步>1,给出提示且不执行多次后退操作)或者终止游戏(正常),继续下一步;

结束游戏:

系统能自动检查到用户拼合出原图。 若成功结束游戏,总分=时间分数+移动正确率(正确数/移动正确率)*100,将本场的游戏时间加入到游戏记录中,并按照排序显示之前游戏的时间和该用户信息。上传分数以及获取排名,可以选择删除之前的成功记录,但是不可以用户随意增加记录。

2 程序实现

2.1界面设计

界面要包括登录界面,注册界面,游戏模式选择界面和游戏界面

2.2图像分割

借助java种的集合ArrayList类进行随机打乱,对于八数码问题还需要考虑序列的逆序数的奇偶性问题

2.3图像移动

实现图像移动借助了按钮之间的组件交换

2.4判断胜利

通过每次移动后比较各个组件的位置来判断游戏是否胜利。

3界面截图

源代码位于主页资源中,如有需要自行下载。记住修改自己的文件路径和所需要的图片,才能让代码正常运行!

感谢CSDN上大佬的博文及老师同学的帮助指导,做出这个课设实属不易。

java九宫格游戏实践相关推荐

  1. java完成九宫格数独_简单实现java数独游戏

    本文实例为大家分享了java数独游戏的具体代码,供大家参考,具体内容如下 打算把javaFx需要的组件装好以后直接用javaFx的,但似乎eclipse的版本不对,安装了也不能用... 数独代码是在之 ...

  2. java 九宫格数独_Java web - 数独九宫格游戏攻略

    分享游戏攻略,源代码集集:- String path = request.getContextPath(); String basePath = request.getScheme()+": ...

  3. Java 理论与实践: 处理 InterruptedException(转)

    很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出InterruptedException.您不能忽略这个异常,因为它是一个检查异常(check ...

  4. 各种经典java小游戏_Java是这个世界上最好的语言!

    为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...

  5. 【Java】寒假答辩作品:Java小游戏

    文章目录 java入门小游戏[test] 游戏界面 前言 (可直接跳到程序介绍) 前期入门小项目 前期收获 后期自创关卡 熄灯问题拓展 新游戏拓展 实现切换关卡切换音乐 后续 java入门小游戏[te ...

  6. 复习Java小球游戏代码分享Java面试题MySQL中常用的锁生活【记录一个咸鱼大学生三个月的奋进生活】021

    记录一个咸鱼大学生三个月的奋进生活021 复习Java小球游戏 游戏界面的代码 小球运动线程的代码 运行游戏的代码 运行结果 代码分享 学习Java面试题(MySQL中常用的锁) 照片分享 复习Jav ...

  7. IBM WebSphere 开发者技术期刊: 最重要的 Java EE 最佳实践

    级别: 初级 Keys Botzum, 高级技术人员 , IBM Kyle Brown, 杰出工程师, IBM Ruth Willenborg (rewillen@us.ibm.com), 高级技术人 ...

  8. Java 理论与实践: 非阻塞算法简介——看吧,没有锁定!(转载)

    简介: Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能.非阻塞算法属于并发算法,它们可以安全地派生它们的线程, ...

  9. java 理论与实践,Java 理论与实践: 正确使用 Volatile 变量

    Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低) ...

最新文章

  1. linux 防火墙iptables简明教程
  2. 寒假每日一题(提高组)【Week 2 完结】
  3. 【干货】百度十年产品经验总结:产品经理九步法
  4. 递归(特别重要,小计算用)
  5. Fiddler工具使用介绍三
  6. Axure9(基础二)
  7. SpringMVC 工作原理
  8. Win10设置屏保时间
  9. Vue中@click.stop与@click.prevent
  10. 学习Vue3 第七章(认识Reactive全家桶)
  11. 大数据学习之Linux基础
  12. Hadoop入门 集群崩溃的处理方法
  13. Leetcode 345 Reverse Vowels of a String 字符串处理
  14. 基于JAVA爱馨敬老院网站计算机毕业设计源码+系统+lw文档+部署
  15. 增加seo好感度,wordpress给文章增加og协议,即meta标签形式如 meta property=”og:
  16. windows10使用cuda11搭建pytorch深度学习框架——运行Dlinknet提取道路(二)——代码运行问题解决
  17. MAC OS X 终端命令入门 (简单常用整理)
  18. 【C++模板编程入门】模板介绍、模板定义、函数模板、类模板、模板的继承
  19. 如何让输入法实现自动切换?
  20. ai模仿声音软件_利用人工智能技术模仿CEO的声音进行了诈骗

热门文章

  1. 一行代码用表情包制作炫酷二维码,详细教程奉上,包学会
  2. 网络营销的手段有哪些?(二)
  3. 201671010458 种兴达 实验三作业互评与改进报告
  4. JAVA面向对象(2)
  5. 解决夜神模拟器连接eclipse的问题
  6. python-pcl函数_Python简介,第4章-函数
  7. matlab 打包封装,matlab中如何封装打包成exe文件
  8. 添加按钮声音nbsp;nbsp;播放声音
  9. 管理感悟:如何成为一名合格的管理者
  10. 用户标签体系的设计和效果评估