var score, level=row*col, blank, movesTaken, lastMoved, tileNumber, square=new Array, thisContains=new Array, moveable=new Array, go, canMove, scramble, temp, playing=false, yes, shift=new Array, shuffle;for (a=0;a<=level-1;a++){square[a]=new Image(picDim, picDim); square[a].src=levelName + "/" + levelName + a + ".jpg"; thisContains[a]=a}function playGame(scramble){shuffle=scramble;lastMoved=-1;movesTaken=0;for (y=0;y<=level-1;y++){thisContains[y]=y;document.images[y].src=square[y].src}document.images[level+1].src='constants/started.gif';blank=blankLocation;setMove();for (p=0;p<=scramble;p++){setMoveScramble();yes=0;for (i=0;i<=3;i++){if ((moveable[i]>=0)&&(moveable[i]<=level-1)){shift[yes]=i;yes++}}temp=shift[Math.floor(Math.random()*yes)];document.images[moveable[temp]].src=square[blankLocation].src;document.images[blank].src=square[thisContains[moveable[temp]]].src;thisContains[blank]=thisContains[moveable[temp]];thisContains[moveable[temp]]=blankLocation;lastMoved=blank;blank=moveable[temp];}playing=true;setMove()}function setMoveScramble(){if (blank-col==lastMoved){moveable[0]=-1}else{moveable[0]=blank-col}if (blank+col==lastMoved){moveable[1]=-1}else{moveable[1]=blank+col}if ((blank/col==Math.floor(blank/col)) ||(blank-1==lastMoved)){moveable[2]=-1}else{moveable[2]=blank-1}if ((((blank+1)/col)==Math.floor((blank+1)/col))||(blank+1==lastMoved)){moveable[3]=-1}else{moveable[3]=blank+1}}function judge(){score=0;for (x=0;x<=level-1;x++){if (thisContains[x]==x){score++}}if (score==level){playing=false;rate()}}function drawTable(){tileNumber=0;document.write("<center><table border='1' cellpadding='10'><tr><td><table border='0' cellspacing='0'>");for (r=0;r<=row-1;r++){document.write("<tr>");for (c=0;c<=col-1;c++){document.write("<td><a href='javascript:void()' onClick='moveTile("+ tileNumber + "); return false'><img src='" + levelName + "/" + levelName + tileNumber + ".jpg' border='0'></a></td>");tileNumber++}document.write("</tr>")}document.write("</table><br><center><img src='" + levelName+ "/" + levelName + "full.jpg' border='0'></td>");document.write("<td valign='top'><center><img src='constants/logo.gif'border='0'><br><br>");document.write("<img src='constants/gliderban.gif' border='0'><br><br>");document.write("<a href='javascript:void()' onClick='playGame(" + level + ");return false'><img src='constants/starteasy.gif' border='0'></a><br><br>");document.write("<a href='javascript:void()' onClick='playGame(" + level*2 +");return false'><img src='constants/startmiddle.gif' border='0'></a><br><br>");document.write("<a href='javascript:void()' onClick='playGame("+ level*5 +");return false'><img src='constants/starthard.gif' border='0'></a></td></tr></table>")}function setMove(){moveable[0]=blank-col;moveable[1]=blank+col;if (blank/col==Math.floor(blank/col)){moveable[2]=-1}else{moveable[2]=blank-1}if ((blank+1)/col==Math.floor((blank+1)/col)){moveable[3]=-1}else{moveable[3]=blank+1}}function moveTile(go){if (playing==true){for (b=0;b<=3;b++){if (moveable[b]==go){canMove=true}}if (canMove==true){movesTaken++;document.images[go].src=square[blankLocation].src;document.images[blank].src=square[thisContains[go]].src;thisContains[blank]=thisContains[go];thisContains[go]=blankLocation;blank=go;if (blank==blankLocation){judge()}setMove()}canMove=false;}}function rate(){if (movesTaken<=(shuffle*3/2)){document.images[level+1].src='constants/score1.gif'}else {if (movesTaken<=shuffle*9/4){document.images[level+1].src='constants/score2.gif'}else {document.images[level+1].src='constants/score3.gif'}}}
