基于java的拼图经典游戏(附代码)
拼图游戏是一款经典的益智游戏,游戏开始前图片被随机打乱,空块位于最右下角,玩家通过点击空块周围图片或者按键方式对图片和空块进行相互交换,直到所有图片都回到原位即为游戏胜利。
本次制作的拼图游戏运行界面如下:
游戏设计的思路
对拼图界面的图像信息可以采用二维数组map进行存储,数组存储的是图片ID,拼图完成的map数组存储的内容应该为从左到右,从上到下,图片ID顺序为1~8,最右下角的数 组元素存储的图片ID为-1(BLANK_STATE)。所有的移动操作可以简化为对map的移动操作,每次移动完成调用repaint()对图片按ID进行绘画即可。使用文本存储历史记录,每次过关对当前步数和历史记录进行比较和更新。考虑到数组map要求打乱后可以通过移动被还原,所以对数组的打乱必须有所讲究,这里我们采用系统对原有图片执行10000次上下左右按键事件来对图片进行打乱,最后再将空块移动到最右下角,这样图片就顺利地做到了随机打乱。
程序源码
游戏逻辑
对玩家执行不同的操作进行分别处理:
①当玩家鼠标点击
当玩家鼠标点击的小图片位于空块上下左右方时,点击的小图片与空块交换位置,否则点击无效。
②当玩家按键移动
当空块位于第一行时,moveDown()无效;
当空块位于最后一行时,moveUp()无效;
当空块位于第一列时,moveRight()无效;
当空块位于最后一列时,moveLeft()无效;
此处的moveLeft()指的是小图片移动的方向,也就是空块移动的反方向。鼠标点击事件的移动可以复用按键事件的移动方法,只需要将点击的小图片与数组下标进行转换,再判断下调用哪个方法即可。
基于java的拼图经典游戏(附代码)相关推荐
- java拼图游戏设计文档_基于JAVA的拼图游戏的设计与实现(含录像)
基于JAVA的拼图游戏的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文15500字,程序代码,答辩PPT,答辩视频录像) 摘 要 在我们日常生活中,有很多的益智类游戏,如七巧 ...
- [计算机毕设]基于java的打飞机游戏系统设计与实现(项目报告+源代码)
基于java的打飞机游戏系统项目说明报告 1.1 手机软件现状 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行.但是传统 ...
- 基于Java的飞机大战游戏的设计与实现论文
源码下载 http://www.byamd.xyz/hui-zong-1/ 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communicat ...
- 基于Java的飞机大战游戏的设计与实现(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 基于Java的飞机大战游戏的设计与实现 摘 要 现如今,随着智能手机的兴起与普及,加上4G( ...
- 【java毕业设计】基于java+GUL的超级玛丽游戏GUL设计与实现(毕业论文+程序源码)——超级玛丽游戏
基于java+GUL的超级玛丽游戏GUL设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+GUL的超级玛丽游戏GUL设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章 ...
- 基于java的推箱子游戏系统设计与实现(项目报告+答辩PPT+源代码+部署视频)
项目报告 基于Java的推箱子游戏设计与实现 社会在进步,人们生活质量也在日益提高.高强度的压力也接踵而来.社会中急需出现新的有效方式来缓解人们的压力.此次设计符合了社会需求,Java推箱子游戏可以让 ...
- 基于Java的飞机大战游戏的设计与实现(论文+源码)
毕业设计(论文)任务书 第1页 毕业设计(论文)题目:基于Java的飞机大战游戏的设计与实现毕业设计(论文)要求及原始数据(资料):1.综述基于Java的飞机大战游戏的现状:2.深入了解Java的设计 ...
- 基于Java的坦克大战游戏的设计与实现(论文+PPT+源码)
幻灯片1 基于Java的坦克大战游戏的设计与实现 幻灯片2 CONTENTS 1 4 设计工具与相关技术 详细设计 2 5 系统分析 结论 3 总体设计 幻灯片3 PPT模板下载:http://www ...
- java毕业设计——基于java+J2ME的堡垒游戏设计与实现(毕业论文+程序源码)——堡垒游戏
基于java+J2ME的堡垒游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2ME的堡垒游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录: 基于ja ...
最新文章
- DataFrame 拼接,筛选,修改
- 【Paper】2019_Distributed Cooperative Control of a High-speed Train
- Statement与PreparedStatement区别
- Unity上使用Linq To XML
- PJzhang:互联网是有国界
- ES6 generator
- Ubuntu 查看操作系统的位数
- 网络虚拟化有几种实现方式_停车场管理系统的防砸车功能有几种方式?如何实现?...
- oracle ora 03137,今天遇到奇怪的ORA-03137错误(包含trc文件)
- python导入包相当于什么_Python中使用语句导入模块或包的机制研究
- Layout anchors徒手写AutoLayout Swift
- oracle10g debian,Debian Sarge 上安装 Oracle 10g
- 游戏使用html签名,利用HTML5实现电子签名板文字涂鸦代码
- phpstudy下载安装简明教程(图文)
- Egret引擎的常用倒计时
- gSkeletonClu: Revealing Density-Based Clustering Structure from the Core-Connected Tree of a Network
- surface android模拟,Surface Duo将支持Android小部件 模拟磁铁体验
- 径向基函数模型matlab,径向基函数RBF.ppt
- 微信小程序实现扫码一键连wifl
- Project与office 365冲突问题