基于java的拼图经典游戏(附代码)

拼图游戏是一款经典的益智游戏,游戏开始前图片被随机打乱,空块位于最右下角,玩家通过点击空块周围图片或者按键方式对图片和空块进行相互交换,直到所有图片都回到原位即为游戏胜利。

本次制作的拼图游戏运行界面如下:

基于java的拼图经典游戏(附代码)_第1张图片

游戏设计的思路
对拼图界面的图像信息可以采用二维数组map进行存储,数组存储的是图片ID,拼图完成的map数组存储的内容应该为从左到右,从上到下,图片ID顺序为1~8,最右下角的数 组元素存储的图片ID为-1(BLANK_STATE)。所有的移动操作可以简化为对map的移动操作,每次移动完成调用repaint()对图片按ID进行绘画即可。使用文本存储历史记录,每次过关对当前步数和历史记录进行比较和更新。考虑到数组map要求打乱后可以通过移动被还原,所以对数组的打乱必须有所讲究,这里我们采用系统对原有图片执行10000次上下左右按键事件来对图片进行打乱,最后再将空块移动到最右下角,这样图片就顺利地做到了随机打乱。 

程序源码

基于java的拼图经典游戏(附代码)_第2张图片

 基于java的拼图经典游戏(附代码)_第3张图片

游戏逻辑

对玩家执行不同的操作进行分别处理:

①当玩家鼠标点击

当玩家鼠标点击的小图片位于空块上下左右方时,点击的小图片与空块交换位置,否则点击无效。

②当玩家按键移动

当空块位于第一行时,moveDown()无效;

当空块位于最后一行时,moveUp()无效;

当空块位于第一列时,moveRight()无效;

当空块位于最后一列时,moveLeft()无效;

此处的moveLeft()指的是小图片移动的方向,也就是空块移动的反方向。鼠标点击事件的移动可以复用按键事件的移动方法,只需要将点击的小图片与数组下标进行转换,再判断下调用哪个方法即可。

基于java的拼图经典游戏(附代码)_第4张图片

 基于java的拼图经典游戏(附代码)_第5张图片

 

 

你可能感兴趣的:(JAVA,java,游戏)