JavaScript版拼图小游戏

慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例

拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较

在线预览(Chrome):http://sandbox.runjs.cn/show/pcwfu7i5

拼图游戏其实挺简单,主要是涉及到一些细节的处理,以下是我的自己在实现中涉及到的问题:

  1. 图片的切割与拼接
  2. 如何随机布局
  3. 如何切换图片
  4. 拖动图片溢出处理
  5. 怎么知道图片是否还原成功

实现思路:

为了简单,我只做了3组选择,3*3 , 6*6 , 9*9 当然你要设4*4都是可以了,维持这个思路与算法就OK了

在一个容器中,我们把布局按照3*3切割,可以把这个看做一个二维矩阵

row = 3   //3行
col = 3  //3列

二维矩阵会形成一张九宫格的图,如下:

初始化:3*3的矩阵图

0 1 2
3 4 5
6 7 8

给每一个碎片图排一个序,3*3 = 9个

页面上的每一次碎片图的变化,其实完全可以映射成内存中对应的originalOrder这个数组的变化

此时碎片图的真实排序就是 originalOrder= [ 0,1,2,3,4,5,6,7,8,9 ]

移动结束:新3*3矩阵图

8 4 2
3 1 7
6 5 0

新的映射表 randomOrder = [ 8,4,2,3,1,7,6,5,0 ]

每一次变化后,计算下原始的矩阵排序与变化后的矩阵排序是否一致

originalOrder == randomOrder  判断是否还原成功

具体的细节实现可以直接参考源码

附上我的git下载地址: https://github.com/JsAaron/puzzleGame

如果需要更详细的教程,可以之后关注下慕课上的新课程~~

时间: 2024-10-10 20:37:38

JavaScript版拼图小游戏的相关文章

仿苹果电脑任务栏菜单&&拼图小游戏&&模拟表单控件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jQuery拼图小游戏

jQuery拼图小游戏 最后样式 核心代码部分 <script type="text/javascript" > $(function () { $("td").click(function () { //获取点击的图片的id id = parseInt($(this).prop("id")); //向下 if (id + 3 < 10 && $("td[id=" + (id + 3) + &

swift 拼图小游戏

根据这位朋友的拼图小游戏改编 http://tangchaolizi.blog.51cto.com/3126463/1571616 改编主要地方是: 原本着我仁兄的代码时支持拖动小图块来移动的,我参照之前自己java当初写的,其实不需要拖动,因为只有一个空出来地方,那么通过点击事件,接受到点击事件的小图只能向一个方向移动或者不能移动. 通过对这个游戏的学习,我也算是第一次用swift写一个有用的代码,大家互相学习. 代码下载位置 版权声明:本文为博主原创文章,未经博主允许不得转载.

《C++ Qt 设计模式》8|15拼图 小游戏的简单实现。拜托,别乱点!

第零章:介绍 看到这个游戏了,感觉蛮好玩的,实现了一下. 界面如下: 游戏玩法:在3×*3的矩阵中,每个按钮都可以点击,如果按钮四周有一个是空白,则点击此按钮则会移动到这个空白.按钮字母顺序变成“ABCD……”这样有序就赢了,最后空格可以出现在任何地方. 第一章:构思 设计模式基本上没接触过,所以就没有按书上的方式,自己想了大概要怎么实现,可能自己像的没有它给出的方式好吧,但是毕竟是菜鸟嘛,一步一步来! 1.用什么装这些按钮 学习了QGridLayOut,“The QGridLayout cla

绅士向纯原生250行拼图小游戏

拼图小游戏 先来预览,咳咳,这个比上次那个地鼠会好看点-- 代码是可以设置难度的,3就是9,9就是81-- 相比来说,此程序难度可是远远高过打地鼠的,希望小伙伴能跟上~ html <header> <button ='Game.restart()'>重新开始</button> <button id="download" ='Game.openImage()'>新标签打开图片</button> </header> &

21款网页版html5小游戏源码

html5魅族创意的贪食蛇游戏源码下载 html5网页版打砖块小游戏源码下载 html5 3D立体魔方小游戏源码下载 html5网页版飞机躲避游戏源码下载 html5三国人物连连看游戏源码下载 js html5 2048数字游戏源码_2048网页版源码下载 html5盲打高手打飞字游戏下载_网页版英文打飞字游戏源码下载 jQuery flappy bird电脑版小游戏源码下载 网页版html5 3d俄罗斯方块游戏源码下载 jQuery html5迷宫游戏源码下载 html5网页游戏仿flappy

速度挑战 - 2小时完成HTML5拼图小游戏

初学lufylegend.js之日,我用lufylegend.js开发了第一个HTML5小游戏--拼图游戏,还写了篇博文来炫耀一下:HTML5小游戏<智力大拼图>发布,挑战你的思维风暴.不过当时初学游戏开发,经验浅薄,所以没有好好专研游戏里的算法和代码的缺陷,导致游戏出现了很多bug,甚至拼图打乱后很可能无法复原.最近经常有朋友问起这个游戏,希望我能把代码里的bug改一下方便初学者学习,顺便我也打算测试一下自己写这种小游戏的速度,所以就抽出了一些时间将这个游戏从头到尾重新写了一遍,计算了一下用

利用javascript实现的小游戏-打地鼠

随着html5的兴起,那些公司对大型游戏的开发正在慢慢疏远,一.开发周期长:二.运营花费高:他们正找一些能够克服这些缺点的替代品.正好,html5的出现可以改变这些现状,在淘宝.京东等一些大型电商网站.QQ.微信等聊天软件都出现了html5的小游戏,这说明html5越来越受到大家的青睐.接下来我用javascript实现一个小型游戏---打地鼠. 打地鼠其实很好实现,主要思路有:先用表格做一个3*3的九宫格,然后放9张坑的图片-->设置一个小于等于9的随机数k,然后让k的坑的图片替换成地鼠的图片

拼图小游戏之计算后样式与CSS动画的冲突

先说结论: 前几天写了几个非常简单的移动端小游戏,其中一个拼图游戏让我郁闷了一段时间.因为要获取每张图片的位置,用`<style>`标签写的样式,直接获取计算后样式再用来交换位置,结果就悲剧了,出现了一些不理解的情况.这个错误比较低级,不过还是被我遇到了,就拿来记录一下. 注意: 在交换每张图片位置的时候,我对它们设置了CSS中transition属性,有了缓冲动画效果,这样一来,每次打乱图片的时候,用getComputedStyle获取计算后样式,但是,动画有时长,而获取样式在触发时就完成了