JS拼图游戏
来源:互联网 发布:telnet无法连接端口 编辑:程序博客网 时间:2024/05/21 08:46
稍微参考了一下网络上的源码,个人练习之用,放在这里备份一下!
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS拼图游戏-练习</title> <style type="text/css"> #move, #show { border: 10px solid #808080; width: 499px; height: 299px; overflow: hidden; position: relative; background-color: #fafafa; } #show { background-image: url(love.jpg); background-repeat: no-repeat; } #move p { margin: 0; cursor: pointer; width: 99px; height: 99px; position: absolute; background: url(love.jpg) no-repeat; } </style> <script type="text/javascript"> speller = { /*初始化*/ init: function (level) { var html = [], i = 0; for (var y = 0; y < 3; y++) for (var x = 0; x < 5; x++) { var top = y * 100; var left = x * 100; html.push('<p onclick="speller.move(this);" id="' + i + '" class="' + i + '" style="left:' + left + 'px;top:' + top + 'px;background-position:-' + left + 'px -' + top + 'px;"></p>'); i++; } document.getElementById("move").innerHTML = html.join(''); this.boxs = document.getElementById("move").getElementsByTagName("p"); this.blank = this.boxs.length - 1; this.hardNum = level; this.rndBox(); }, /*打乱方格布局*/ rndBox: function () { var count = 0; while (count < this.hardNum) { var d = parseInt(Math.random() * 4); var posB = this.blank * 1; var yB = parseInt(posB / 5); var xB = parseInt(posB % 5); var cls = -1; if (d == 0 && yB != 0) { cls = posB - 5; } else if (d == 1 && xB != 4) { cls = posB + 1; } else if (d == 2 && yB != 2) { cls = posB + 5; } else if (d == 3 && xB != 0) { cls = posB - 1; } if (cls != -1) { this.swapTwo(this.getByClass(this.blank), this.getByClass(cls)); this.blank = cls; count++; } } this.getByClass(this.blank).style.display = "none"; }, /*点击移动*/ move: function (currBox) { var pos = currBox.className * 1; var y = parseInt(pos / 5); var x = parseInt(pos % 5); var posB = this.blank * 1; var yB = parseInt(posB / 5); var xB = parseInt(posB % 5); if (Math.abs(x - xB) + Math.abs(y - yB) == 1) { this.swapTwo(currBox, this.getByClass(posB)); this.blank = pos; } if (this.check()) { this.getByClass(this.blank).style.display = "block"; alert("哇,你真棒!"); } }, /*检查是否完成*/ check: function () { for (var i = 0; i < this.boxs.length; i++) { if (this.boxs[i].className != this.boxs[i].id) return false; } return true; }, /*根据className获取对象*/ getByClass: function (cls) { for (var i = 0; i < this.boxs.length; i++) { if (this.boxs[i].className == cls) return this.boxs[i]; } return null; }, /*交换两个方格*/ swapTwo: function (boxA, boxB) { var left = boxA.style.left; var top = boxA.style.top; var cls = boxA.className; boxA.style.top = boxB.style.top; boxA.style.left = boxB.style.left; boxA.className = boxB.className; boxB.style.top = top; boxB.style.left = left; boxB.className = cls; } }; window.onload = function () { speller.init(5); document.getElementById("hard").onchange = function () { speller.init(this.value); } }; </script></head><body> <table border="0"> <tr> <td> <div id="move"></div> </td> <td> <div id="show"></div> </td> </tr> <tr> <td> <select id="hard"> <option value="5">简单模式</option> <option value="30">一般模式</option> <option value="100">困难模式</option> </select> </td> <td> </td> </tr> </table></body></html>
用到的图片(来自网络):
- JS拼图游戏
- js拼图游戏
- js写的拼图游戏
- 原创JS拼图游戏
- Js写的拼图游戏
- js实现拼图游戏
- 原生js拼图游戏
- 一个简单的JS拼图游戏
- 利用Vue.js实现拼图游戏
- 拼图游戏
- 拼图游戏
- 拼图游戏
- 拼图游戏
- 拼图游戏
- 拼图游戏
- 拼图游戏
- 拼图游戏
- 拼图游戏
- 数据库知识总结
- 从关系型数据库到非关系型数据库
- R语言与回归分析学习笔记(bootstrap method)
- linux signal传递(处理)
- 决定
- JS拼图游戏
- 为什么项目开放源代码之后就变成死项目 很少或几乎不再更新
- 机器学习理论与实战(二)决策树
- UpdateWindow
- ext tree 异步加载取消自动加载功能。
- Java线程同步之一
- 快速读取进程内存
- Android学习之广播机制(1)
- 背包问题(poj2184)