【实例简介】

【实例截图】

【核心代码】

拼图

*{

margin: 0;

padding: 0;

box-sizing: content-box;

}

.wrap{

width: 1000px;

height: 800px;

background: #EDEDED;

}

#Img{

width: 320px;

height: 320px;

margin: 0 auto;

}

#Img li{

list-style: none;

width: 100px;

height: 100px;

float: left;

border: 1px solid #F6F6F6;

margin: 1px;

cursor: pointer;

background-image: url(https://img01.haolizi.net/2019/02/07/fd/0/8/fd0879b92c88d56b149454bb3f77086c.png);

background-size: 300px 300px;

background-repeat: no-repeat;

position: relative;

}

.start{

text-align: center;

}

3*3

4*4

开始

var group = 3, //分为几组进行排列

ul = $("#Img ul"),

sequence = [],

ImgList = [],

imgLens,

steps;

var Puzzle = {

initImgOrder : function(){ //正常顺序的图片

imgLens = Math.pow(group,2);

sequence = [];

ul.empty();

var size = group * 100 "px";

for (var i = 0; i < imgLens; i ) {

var y = -((i / group) >>> 0), x = -i % group;

ImgList[i 1] = [x,y];

var li = '

';

ul.append(li);

sequence.push(i 1);

}

$("#Img li").css({"backgroundSize":size " " size});

},

showRandomImg: function(newArr){

ul.empty();

var size = group * 100 "px";

for (var i in newArr) {

var item = newArr[i],

x = ImgList[item][0],

y = ImgList[item][1];

var li = '

';

ul.append(li);

}

ul.append('

'); //加上空白格

$("#Img li").css({"backgroundSize":size " " size});

},

imgMove: function(e){

var allLi = ul.find("li"),

x = allLi.index($(e)) 1,

z = allLi.index($("#block")) 1;

if(x - 1 == z && (x-1) % group != 0){ //如果空白格在左边

$(e).after($("#block"));

steps ;

}

if(x 1 == z && (x 1) % group != 1){ //如果空白格在右边

$("#block").after($(e));

steps ;

}

if(x group == z && (x group) < imgLens 1){ //如果空白格在下边

var p = $("#block").prev();

$(e).next().before($("#block"));

p.after($(e));

steps ;

}

if(x - group == z && (x-group) > 0){ //如果空白格在上边

var p = $("#block").next();

$(e).prev().after($("#block"));

p.before($(e));

steps ;

}

Puzzle.isGameOver();

},

isGameOver: function(){ //游戏是否结束

var allLi = ul.find("li"),

count = 0;

for (var i = 0; i < imgLens; i ) {

var idx = allLi.eq(i).data().index;

if (idx == (i 1)) {

count ;

}

}

if(count == imgLens){

alert('u are win! ' steps ' steps in use');

Puzzle.initImgOrder();

$(".start").show();

}

},

randomImgOrder: function(arr){ //随机打乱图片

arr.sort(function () {

return 0.5 - Math.random();

});

var num = Puzzle.reverseCount(arr);

/** 检测打乱后是否可解 */

if (num % 2 != 0) {

/** 不可解,通过调换倒数第二个第三个数值,改变逆序数的奇偶性 */

var len = arr.length,

t = arr[len-2];

arr[len-2] = arr[len-3];

arr[len-3] = t;

}

console.log(arr)

return arr;

},

reverseCount: function(arr){ //计算逆序数

var reverseAmount = 0;

for (var i = 0; i < imgLens-1; i ) {

var current = arr[i];

for (var j = i 1; j < imgLens-1; j ) {

var compared = arr[j];

if (compared < current) {

reverseAmount ;

}

}

}

return reverseAmount;

}

}

Puzzle.initImgOrder();

$("#select").on('change',function(){

var val = $(this).val();

if(val == "3"){

group = 3;

$("#Img").css({"width":"320px","height":"320px"});

Puzzle.initImgOrder();

}else{

group = 4;

$("#Img").css({"width":"440px","height":"440px"});

Puzzle.initImgOrder();

}

});

$("#begin").on('click',function(){

$(".start").hide();

sequence.splice(imgLens-1, 1); //除开一个空白格

var randArr = Puzzle.randomImgOrder(sequence);

Puzzle.showRandomImg(randArr);

steps = 0;

});

ul.on('click','li',function(){

Puzzle.imgMove(this);

});

java编写九宫格拼图游戏_jquery 九宫格拼图游戏源码相关推荐

  1. Java 编写开心农场系统 窗体程序 功能强大 完整源码

    今天为大家分享一个java语言编写的开心农场,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为 ...

  2. Java 编写在线考试系统-049 窗体程序 完整源码

    今天为大家分享一个java语言编写的在线考试系统-049,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 ...

  3. ZZNUOJ_用Java编写程序实现1527:简单加法(附源码)

    题目描述 计算一个数与它各位数字之和.   如输入123,123+1+2+3=129:   123456,123456+1+2+3+4+5+6=123477: 输入 输入数据有多组,每组只有一行,包含 ...

  4. Java 编写飞鸽传书系统 窗体程序 完整源码

    今天为大家分享简单的飞鸽传书程序的开发与制作,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言 ...

  5. java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。

    java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数.另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码. 具 ...

  6. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

  7. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)

    目录 JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三) 前言 1. 任务描述 1.1  ...

  8. java计算机毕业设计HTML5游戏网站设计与实现源码+mysql数据库+系统+lw文档+部署

    技术栈 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui.HTML.CSS.JS.JQuery等技术 后端技术:JAVA 运行环境:Win10.J ...

  9. java计算机毕业设计-游戏账号交易平台-演示录像-源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计-游戏账号交易平台-演示录像-源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计-游戏账号交易平台-演示录像-源码+数据库+系统+lw文档+mybat ...

  10. 基于JAVA网页小游戏交流论坛计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA网页小游戏交流论坛计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA网页小游戏交流论坛计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开 ...

最新文章

  1. html5新年网页做给父母的,春节回家,要陪父母做这十件小事
  2. 质量属性六个常见属性场景(《淘宝网》为例) 15
  3. 易生信Linux培训
  4. 案例:用户登录(html--servlet--mysql)
  5. 拼多多开卖飞天茅台酒,比市价低1000元,茅台也表示没有合作?
  6. update mysql php_PHP的MySQL的更新update
  7. C++Primer第5版学习笔记(三)
  8. 样条线怎么挤出平面_最速降线的故事
  9. java jquery分页_如何最简单的实现java分页
  10. hadoop Context类
  11. vc12对应的php版本,vc和vs的区别
  12. linux qq 提示错误,deepin-wine QQ崩溃,QQ遇到错误的暂时解决方法
  13. java int的取值范围为什么负数比正数多1
  14. 星上SAR实时处理调研1
  15. 如何进行系统的架构设计?
  16. 福布斯专栏:小米手机难成主流
  17. Ambiguous method overloading for method ****** 异常的解决办法
  18. SQL基础培训25-SQL开发思路畅谈与开发规范
  19. COCOS学习笔记--TexturePacker使用详解
  20. 使用PostgreSQL 9.6 架设mediawiki服务器

热门文章

  1. 社会工程学攻击的三个典例
  2. 48V转12V电源芯片,48V转15V降压芯片电路图方案
  3. 你该不会不知道,web自动化测试中的八大定位方法吧!
  4. MATLAB求解夏普利值
  5. 0.99元用7天,金山云大米云主机给你这个机会!
  6. 电压、电流检测方法介绍
  7. 路由器刷机突破校园网限制
  8. megafiers3.14下载
  9. 光纤上网是如何实现的?—Vecloud微云
  10. cJSON字符串解析