atitit.html5 拼图游戏的解决之道.

atitit.html5 拼图游戏的解决之道.

1. 拼图游戏的操作(点击法and 拖动法)
1

1. 支持键盘上、下、左、右键移动; 1

2. 支持点击空白模块中的上下左右箭头移动; 1

3. 支持点击空白模块的临近模块移动。 1

4. 还是点击法好,兼容性好...手机and电脑
1

2. 注释:无解的问题(逆序和判别法) 2

5. 3*3的大概50%无解 2

6. Grid 旋转的问题.. 2

7. 要应用测试成功的api 2

8. 测试图片数字化,为轻松的测试.. 2

3. 能使用的 2

4. 拼图游戏实现方式 3

9. 背景图片offset 方式.. 3

10. HTML5 Canvas API实现拼图游戏 4

11. Canvas 与 SVG 的比较 4

5. 两个图AB错位 4

6. 逆序和判别法 5

7. 轮换判别法 6

8. Jeig bnen use 8

9. 参考 10

1. 拼图游戏的操作(点击法and 拖动法)

1. 支持键盘上、下、左、右键移动;

2. 支持点击空白模块中的上下左右箭头移动;

3. 支持点击空白模块的临近模块移动。

4. 还是点击法好,兼容性好...手机and电脑

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected]

转载请注明来源: http://blog.csdn.net/attilax

2. 注释:无解的问题(逆序和判别法)

5. 3*3的大概50%无解

6. Grid 旋转的问题..

transform: rotate(40deg)

7. 要应用测试成功的api

Biers yao pin yva time tsainen syaod ok le ..

8. 测试图片数字化,为轻松的测试..

3. 能使用的

HTML5网页拼图游戏代码,支持FF_Chrome和IE9 下载 - 烈火网下载频道.htm

JavaScript版网页拼图游戏,由于本游戏基于HTML5技术,因此仅支持FireFox4.0[及以上版本] ,Chrome11[及以上版本]、和IE9以上版本。

游戏解说:请将拼图游戏中的图片碎片拼接成右侧预览中的模样即获胜。支持键盘上、下、左、右键移动;支持点击空白模块中的上下左右箭头移动;支持点击空白模块的临近模块移动。

4. 拼图游戏实现方式

9. 背景图片offset 方式..

Liehuo的走十这个,,,轻松的..

10. HTML5 Canvas API实现拼图游戏

· 标签:拼图游戏 时间:2014-01-27 已阅读:689

· HTML5结合使用Canvas API、文件API与拖放API制作拼图游戏,HTML 5开发精要与实例详解一书的配套示例,请在支持HTML5的浏览器中使用,比如Chrome或火狐以及Opera等浏览器都可以,IE8不行哦。本拼图游 戏在运行时,需要用户指定一张图片,游戏会自动打散图片。主要是练习Canvas属性的用法。

11. Canvas 与 SVG 的比较

下表列出了 canvas 与 SVG 之间的一些不同之处。

Canvas

· 依赖分辨率

· 不支持事件处理器

· 弱的文本渲染能力

· 能够以 .png 或 .jpg 格式保存结果图像

· 最适合图像密集型的游戏,其中的许多对象会被频繁重绘

SVG

· 不依赖分辨率

· 支持事件处理器

· 最适合带有大型渲染区域的应用程序(比如谷歌地图)

· 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)

· 不适合游戏应用

5. 两个图AB错位

当两个图AB错位, 先利用空格在两个图中间插入一个图C, 然后再让ABC与他们上面或下面的EFG6个图旋转, 当顺序矫正后抽出C  会发现C EFG在动下就能找回原位  而AB已经矫正了位置。

当ABCDEF整行错位  变成了FABCDE  把F拖下来到A的下面 变成ABCDEX【A下面是F】 然后把F转到X下面

在把ABCDEx整行向左拖1个格  于是F就到了X的右边 即BCDEXF【A在B下面】

把X抽出 ABCDE拖回去  就矫正回来了

6. 逆序和判别法

* 虽然已学会了移动的技巧,但稍有经验的人都知道,如果採用随机花式的玩法,将会有一半的机率出现无解的情形,花费了一番工夫之后才发现无解时,那种滋味可 真不好受。如果採用的是转换指定花式的玩法,尤其是有人出题互考时,最后才发现被以无解的情形来戏弄了,不也有点不甘心?所以如果学会了是否有解的判定法 之后,在移动前就判定了是否有解,不是反可让那些想戏弄我们的人被唬得一愣一愣的吗?

* 要判别指定的随机花式是否有解,逆序和判别法是较易于上手的方法。

* 本法判别的步骤如下:

1. 第一步:空格归位。

可以用任意的移动方式把空格移到右下角。以图 1 和图 2 的随机花式为例,图 11 和图 12 分别採用了不 同的归位方式。

 8 4 7 9 12 13 10 3 5 15 1 11 6 14 2 ===> 9 8 4 7 3 12 13 10 11 5 15 1 6 14 2  ( 图 11 ) 以先下移后右移的方式将空格归位。

8 2 1 13 10 4 5 14  7 9 11 3 12 15 6 ===> 8 2 1 13 10 4 5 14 7 9 11 6 3 12 15  ( 图 12 ) 以先右移后下移的方式将空格归位。

2. 第二步:点数逆序的个数,并求其和。

把数字盘中的数字当成一个数列,其顺序为由左而右、由上而下,以图 11 右边的归位花式而言, 可看成是下面的数列

9, 8, 4, 7, 3, 12, 13, 10, 11, 5, 15, 1, 6, 14, 2

什麽是逆序呢? 当数列中较小的数字位置在较大数字的后方时,就是逆序。

以上面的数列为例,

数字 9 共有 8 个逆序,因为 1, 2, 3, 4, 5, 6, 7, 8 都在它的后方,

数字 8 共有 7 个逆序,因为 1, 2, 3, 4, 5, 6, 7 都在它的后方,

数字 4 共有 3 个逆序,因为 1, 2, 3 都在它的后方,

数字 7 共有 5 个逆序,因为 1, 2, 3, 5, 6 都在它的后方,

数字 3 共有 2 个逆序,因为 1, 2 都在它的后方,

数字 12 共有 6 个逆序,因为 1, 2, 5, 6, 10, 11 都在它的后方,

数字 13 共有 6 个逆序,因为 1, 2 5, 6, 10, 11 都在它的后方,

数字 10 共有 4 个逆序,因为 1, 2 5, 6 都在它的后方,

数字 11 共有 4 个逆序,因为 1, 2 5, 6 都在它的后方,

数字 5 共有 2 个逆序,因为 1, 2 都在它的后方,

数字 15 共有 4 个逆序,因为 1, 2, 6, 14 都在它的后方,

数字 1 共有 0 个逆序,因为它就是最小的数了,

数字 6 共有 1 个逆序,因为只有 2 在它的后方,

数字 14 也只有 1 个逆序,就是 2,

数字 2 已是数列中的最后一个数字了,当然没有逆序。

所以逆序和就是 8 + 7 + 3 + 5 + 2 + 6 + 6 + 4 + 4 + 2 + 4 + 0 + 1 + 1 = 53

3. 第三步:判定。逆序和为偶是有解,为奇则无解。

由于图 5 的逆序和为 53,所以图 11 的随机花式无解。

请读者自行计算试试,图 12 的归位花式其逆序和为 38,所以图 12 的随机花式有解。

想到了吗?在第二步计算逆序和时,其实可以偷一下懒,只注意和是奇偶就好, 不必老老实实的加总,那很累的!(看不懂?没关係!当做尤怪我没说就好了)

* 因为我们的目的花式(顺序花式)逆序和为 0 是偶数,所以所有有解的花式也一定是偶数逆序和。

如果我们的目的花式(例如逆序花式)逆序和是奇数,则所有有解的花式也一定是奇数的逆序和。

7. 轮换判别法

* 要判别指定的随机花式是否有解,逆序和判别法虽然较易于上手,但是点数起来有点麻烦不是吗? 如果你有同感,那试试轮换判别法吧!

* 本法判别的步骤如下:

1. 第一步:空格归位。同逆序和判别法之操作。

2. 第二步:写出轮换的连乘积。

同样的把数字盘中的数字看成是一个由左而右、由上而下的数列,以图 11 右边的归位花式而言, 可看成是下面的数列

9, 8, 4, 7, 3, 12, 13, 10, 11, 5, 15, 1, 6, 14, 2

由数字 1 开始检验,如果它的位置和数值不符,就要开始以下製作轮换的过程:

这个轮换的第一个数字是数值 1,它的位置跑到位置 12 去了,记成 (1, 12

位置 12 应该是数值 12,但它却跑到位置 6 去了,记成 (1, 12, 6

位置 6 应该是数值 6,但它却跑到位置 13 去了,记成 (1, 12, 6, 13

位置 13 应该是数值 13,但它却跑到位置 7 去了,记成 (1, 12, 6, 13, 7

位置 7 应该是数值 7,但它却跑到位置 4 去了,记成 (1, 12, 6, 13, 7, 4

位置 4 应该是数值 4,但它却跑到位置 3 去了,记成 (1, 12, 6, 13, 7, 4, 3

位置 3 应该是数值 3,但它却跑到位置 5 去了,记成 (1, 12, 6, 13, 7, 4, 3, 5

位置 5 应该是数值 5,但它却跑到位置 10 去了,记成 (1, 12, 6, 13, 7, 4, 3, 5, 10

位置 10 应该是数值 10,但它却跑到位置 8 去了,记成 (1, 12, 6, 13, 7, 4, 3, 5, 10, 8

位置 8 应该是数值 8,但它却跑到位置 2 去了,记成 (1, 12, 6, 13, 7, 4, 3, 5, 10, 8, 2

位置 2 应该是数值 2,但它却跑到位置 15 去了,记成 (1, 12, 6, 13, 7, 4, 3, 5, 10, 8, 2, 15

位置 15 应该是数值 15,但它却跑到位置 11 去了,记成 (1, 12, 6, 13, 7, 4, 3, 5, 10, 8, 2, 15, 11

位置 11 应该是数值 11,但它却跑到位置 9 去了,记成 (1, 12, 6, 13, 7, 4, 3, 5, 10, 8, 2, 15, 11, 9

位置 9 应该是数值 9,但它却跑到位置 1 去了,但因为这个轮换的起始数就是 1,所以轮换结束,记成 (1, 12, 6, 13, 7, 4, 3, 5, 10, 8, 2, 15, 11, 9)

不包括在这个轮换的数值只剩下 14,而它恰好也在位置 14,所以不必製作另一个轮换。图 11 的归位花式轮换积就是 (1, 12, 6, 13, 7, 4, 3, 5, 10, 8, 2, 15, 11, 9) 了。

3. 第三步:判定轮换积是偶排列或奇排列。

把每一个轮换的元素个素减 1后相加,其和就姑且称之为长度吧!长度为偶数的轮换积叫做偶排列,长度 为奇数的轮换积就叫做奇排列。

(1, 12, 6, 13, 7, 4, 3, 5, 10, 8, 2, 15, 11, 9) 只有一个轮换且元素个数为 14,所以长度为 13, 是奇排列。

4. 第四步:判定。若为偶排列则有解,为奇排列则无解。

由于图 11 对应的轮换积是奇排列,所以图 11 的随机花式无解。

请读者自行试试,图 12 对应的轮换积为 (1, 3, 13, 4, 6, 12, 14, 8)(5, 7, 9, 10), 所以长度为 ( 8 - 1)+ ( 4 - 1 ) = 10 是偶排列,所以有解。

* 因为我们的目的花式(顺序花式)是偶排列,所以所有有解的花式也一定是偶排列。

如果我们的目的花式(例如逆序花式)是奇排列,则所有有解的花式也一定是奇排列。

3*3  16  25 grid的困难户比较.

* 以上的示范及讨论都是用一般的 4 * 4 盘面,如果改换成 n * m 的盘面时,是否也可以依样画葫芦呢? 是的,以上的方法及结论全部适用。

* 那麽市售的实体数字盘或一般的玩法为什麽大都是採用4*4 的盘面呢?除了实体数字盘要做到任意改变大小 实在非常困难外,另一个原因就是 3 * 3 的盘面只有数字 1 的归位是简单的,其他的每一个数字要归位都 要大费思量,而 5 * 5 以上的盘面,有一半以上的数字都毫无挑战性,最右两行及最下两列虽然是比较有困难度的,但是能解决两个,就表示已掌握了移动的技巧了,再多的类似情况也可 顺利过关,所以并无意义。 4*4 的盘面难易度因此最为适中,所以大家就习以为常了

8. Jeig bnen use

现在HTML5大热,但看了很多介绍,都是重点介绍CANVAS而相对忽略了SVG,我个人感觉这两个技术结合,优势互补,利用SVG的交互性和CANSVAS的绘图能力,才能更好地发挥各自的作用。

以前用纯SVG做到一个拼图的DEMO,现在改为SVG和CANVAS,花了一个星期的时间,重写了这个例子,在CHROME17和FF12中进行了测试。比纯SVG速度快。

一直看好SVG,但由于种种原因,包括浏览器是否支持等等,没有得到广泛的应用。在HTML5的框架内,SVG能够发挥自己应有的威力了吧

Jeig bsin \

HTML5拼图游戏代码 - 下载频道 - CSDN.NET.htm

9. 参考

16格智力拼图技巧_馨阳楼_百度空间.htm

智力拼图技巧_馨阳楼_百度空间.htm

九宫数独基本技巧--摒除法_馨阳楼_百度空间.htm

atitit.html5 拼图游戏的解决之道.

时间: 2024-11-05 14:49:22

atitit.html5 拼图游戏的解决之道.的相关文章

atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服务器文件夹挑选文件,在返回... 1 2. 在线文件管理器要实现的基本的功能::指定开始目录,指定getfile回调 1 3. 组件选型:: elFinder (3M) ,,php web ftp 1 4. elFinder 的概念 1 5. elFinder  1.x 的使用过程 2 6. elF

Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java

Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java 1. 内存区域的划分 1 2. PermGen内存溢出深入分析 1 3. PermGen OOM原因总结 2 4. 常见的类加载器和类型卸载的可能性总结 2 5. PermGen内存溢出的应对措施 3 6. 第二种就是使用oracle的BEA JDK,因为这个里面的JVM没有PermGen space 3 7. 参考 3 1. 内存区域的划分 java的内存泄漏基本上按照内存区域的划分可以分为: 1 堆

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

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

Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道

Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Target Server Version : 50524 3.mysql的max_allowed_packet限制[phpmyadmin | source] Show vari like '%%' Set max..=111111 Set global maxxx=1111 作者::老哇的爪子Attilax

Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道

Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Target Server Version : 50524 3.mysql的max_allowed_packet限制[phpmyadmin | source] Show vari like '%%' Set max..=111111 Set global maxxx=1111 作者::老哇的爪子Attilax艾龙,E

atitit.html5 vs 原生 app的区别与选择

atitit.html5  vs 原生 app的区别与选择 1. html5的优点 1 1.1. 最大优势::在跨平台(ios苹果,android安卓等) 1 1.2. 开放性 1 1.3. 快速的更新,热更新 2 1.4. 开发成本上 2 1.5. 碎片化 2 2. 原生app 应用的优点 2 2.1. 对游戏等要求性能的app更好 2 2.2. 原生应用最大的优势就是可以访问设备中的所有功能 2 2.3. 对摄像头.电话本,相机,游戏等操作支持的好,对语音,联系人和日历,也支持比较好. 2

一款html拼图游戏详解

本文是爱编程原创翻译,转载请看清文末的转载要求,谢谢合作! 游戏介绍 这篇文章是献给web游戏开发者用简单的开发工具开发一款游戏.此文介绍了用html.css.javascript只需简单和几个步骤开发一款2d游戏.在这里,我要呈现给大家如何创建一款拼图游戏,在这个游戏中你可以拖动小图块来拼成完整的大图. 点击这里查看游戏效果. 游戏规则 游戏规则非常简单,你只要拖动被切碎的图片块来组成完整的大图.需要用正确的方法才能最终拼成完整的图片.在游戏中拖动小图片的次数将被统计下来.所以.应该尽量用最少

HTML5物理游戏开发 - 越野山地自行车(三)粉碎自行车

自上一章发布到现在已时隔四月,实在对不住大家,让大家久等了~话说不是我不关注我的博客,而是事情一多起来写博客的时间就少了.待到今日有空了,回头看了看自己以前写的文章,猛得发现已经四个月不曾写文章了,便只得叫声:"苦也~",我害怕本系列文章会拖得更久,于是立刻提笔,也好为本系列文章留个凤尾. 首先,大家来温习一下前面两篇里的内容吧: HTML5物理游戏开发 - 越野山地自行车(二)创建一辆可操控的自行车 http://blog.csdn.net/yorhomwang/article/de

Html5 移动游戏开发

有很多游戏采用H5技术开发,比如三国来了.巴哈姆特之怒.切绳子等.我们公司也有多款游戏用H5开发,H5开发成本低,效率高,方便做自动更新,可移植性好.受益于H5技术,我们公司的很多产品都很方便跨平台. 早在2012年,我就很荣幸负责技术攻关,把我们的游戏移植到win8和wp8平台,当时在国内的win8和wp8平台是领先的.我们的一款游戏,跨ios.android.win8.wp8和黑莓10五大移动平台,这在国内肯定是唯一的吧? <Infinity Lands>喜获黑莓优秀大奖 也得益于在win