[web developer center]depth search and go-back caculation |
playGame.jsvar x = 7;var y= 6;var initStr = "........X...X....X.X......X......X........";var conorPos = [];var vistedLen = 0;var allRects = [];function initRects(x,y,initStr){ var total = x*y; var counter = 0; document.getElementById("gameBoard").innerHTML = ''; for(var i=0;i<x;i++){ var temArr = []; for(var j=0;j<y;j++){ var item = {}; item.value = initStr.charAt(counter,1); counter++; item.x = i; item.y = j; if(item.value=='X'){ item.visted = true; vistedLen++; var temDiv = "<div id='"+i.toString()+j.toString()+"' style='width:15px;height:15px;float:left;background-color:green;border:1px solid red;margin-right:2px;'></div>"; document.getElementById("gameBoard").innerHTML += temDiv; } else { item.visted = false; var temDiv = "<div id='"+i.toString()+j.toString()+"' style='width:15px;height:15px;float:left;background-color:white;border:1px solid red;margin-right:2px;'></div>"; document.getElementById("gameBoard").innerHTML += temDiv; item.divId = i.toString() +j.toString(); } temArr[j]=item; } document.getElementById("gameBoard").innerHTML += "<BR/>"; allRects[i]=temArr; } }function findPos(start){ var pos = {}; for(var ii = 0;ii<i;ii++){ for(var jj=0;jj<j;jj++){ if(start == allRects[i][j].value) pos.x = allRects[i][j].x; pos.y = allRects[i][j].y; } } return pos; }function startPlay(){ /* for(var i=0;i<x;i++){ for(var j=0;j<y;j++){ if(allRects[i][j].visted){ continue; } document.getElementById(allRects[i][j].divId).style.backgroundColor='red'; console.log(i,j); allRects[i][j].visted = true; vistedLen++; doSearch(i,j); } }*/ document.getElementById(allRects[0][0].divId).style.backgroundColor='red'; doSearch(0,0);}function doSearch(i,j){ alert(i+' '+j) var init=[i,j]; var saved = [i,j]; while(i+1<x && !allRects[i+1][j].visted) { if (allRects[i+1][j].visted && vistedLen < x*y){ i = saved[0]; j = saved[1]; break; } allRects[i+1][j].visted = true; vistedLen++; if(vistedLen >= x*y) { alert('i am winner') } document.getElementById(allRects[i+1][j].divId).innerHTML=vistedLen; i++; } saved = [i,j]; conorPos.push(saved); if((i!=init[0] || j!=init[1]) && i+1<x&&!allRects[i+1][j].visted) doSearch(saved[0],saved[1]); while(j+1<y && !allRects[i][j+1].visted){ if (allRects[i][j+1].visted && vistedLen < x*y) { i = saved[0]; j = saved[1]; break; } allRects[i][j+1].visted = true; vistedLen++; if(vistedLen >= x*y) { alert('i am winner') } document.getElementById(allRects[i][j+1].divId).innerHTML=vistedLen; j++; } saved = [i,j]; conorPos.push(saved); if((i!=init[0] || j!=init[1]) && i+1<x&&!allRects[i+1][j].visted) doSearch(saved[0],saved[1]); while(j-1>=0 && !allRects[i][j-1].visted){ if (allRects[i][j-1].visted && vistedLen < x*y) { i = saved[0]; j = saved[1]; break; } allRects[i][j-1].visted = true; vistedLen++; if(vistedLen >= x*y) { alert('i am winner') } document.getElementById(allRects[i][j-1].divId).innerHTML=vistedLen; j--; } saved= [i,j]; conorPos.push(saved); if((i!=init[0] || j!=init[1]) && i+1<x&&!allRects[i+1][j].visted) doSearch(saved[0],saved[1]); while(i-1>=0 && !allRects[i-1][j].visted) { if (allRects[i-1][j].visted && vistedLen < x*y) { i = saved[0]; j= saved[1]; break; } allRects[i-1][j].visted = true; vistedLen++; if(vistedLen >= x*y) { alert('i am winner') } document.getElementById(allRects[i-1][j].divId).innerHTML=vistedLen; i--; } saved = [i,j]; conorPos.push(saved); if((i!=init[0] || j!=init[1]) && i+1<x&&!allRects[i+1][j].visted) doSearch(saved[0],saved[1]);}index.html<html> <head> <title></title> <meta content=""> <style></style><script type="text/javascript" src="playGame.js"></script> </head> <body onLoad=" initRects(x,y,initStr);"><div id="gameBoard" style="background-color:#000000;"></div><div onclick="startPlay();" style="cursor:arrow;">play<div></body></html>
|
|
回复:depth search and go-back caculation |
yes,up527@hotmail.com,welcome
|
|
回复:depth search and go-back caculation |
幸福中的小樱桃(游客)发表评论于2008/4/11 14:07:47 | 可以和你联系么?你有MSN么.
|
|
» 1 »
|  .: 公告
|
« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| .: 我的分类(专题) |  .: 最新日志 .: 最新回复
| 
blog名称:up forever 日志总数:130 评论数量:274 留言数量:4 访问次数:1949529 建立时间:2006年5月25日 |
|  .: 留言板 |  .: 链接 |

|