<html>
<head>
<title>Jigsaw puzzle</title>
<style>
{
width : 20px ;
height : 20px ;
}
{
width : 100% ;
height : 100% ;
background-color : #000 ;
color : #FFF ;
text-align : center ;
vertical-align : middle ;
}
</style>
<script>
var currPos = 9;
function move(event){
switch(){
case 37 :
// Left button
if (currPos % 3 != 0){
var currTd = ("numTd_" + currPos);
var nextTd = ("numTd_" + (currPos + 1));
var temp = ;
= " ";
= temp;
currPos ++ ;
}
break;
case 38 :
// Up key
if (currPos < 7){
var currTd = ("numTd_" + currPos);
var nextTd = ("numTd_" + (currPos + 3));
var temp = ;
= " ";
= temp;
currPos += 3;
}
break;
case 39 :
// Right click
if (currPos % 3 != 1){
var currTd = ("numTd_" + currPos);
var nextTd = ("numTd_" + (currPos - 1));
var temp = ;
= " ";
= temp;
currPos -- ;
}
break;
case 40 :
// Down key
if (currPos > 3){
var currTd = ("numTd_" + currPos);
var nextTd = ("numTd_" + (currPos - 3));
var temp = ;
= " ";
= temp;
currPos -= 3;
}
break;
default :
break;
}
if (isWin()){
alert("Congratulations, you passed!");
initNums();
}
}
function isWin(){
for (i = 1; i < 9; i ++ ){
var numTd = ("numTd_" + i);
var numDiv = ("div");
if (i != ){
return false;
}
}
return true;
}
function initNums(){
var numArr = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9);
var newnewNumArr = new Array();
do{
var tempStr = "";
for(i in numArr){
var flag = true;
do{
tempNum = numArr[parseInt(() * 100) % 9];
if ((tempNum) == -1){
newNumArr[i] = tempNum;
tempStr += tempNum;
flag = false;
}
}
while(flag);
}
}while(inverNum(newNumArr) % 2 == 0);
var len = ;
for(j = 0; j < len; j ++ ){
if (newNumArr[j] != 9){
("numTd_" + (j + 1)).innerHTML = "<div id='numDiv_"+newNumArr[j]+"' class='numDiv'>" + newNumArr[j] + "</div>";
}
else{
("numTd_" + (j + 1)).innerHTML = " ";
currPos = j + 1;
}
}
// ("output").innerText = newNumArr;
}
function inverNum(numArr){
var len = ;
var count = 0;
for(i = 0; i < len - 1; i ++ ){
for(j = i + 1; j < len; j ++ ){
if (numArr[j] > numArr[i]){
count ++ ;
}
}
}
// alert("Inverse number: "+count);
return count;
}
</script>
</head>
<body onkeyup="move(event);" onload="initNums();">
<table align="center">
<tr>
<td class="numTd">
</td>
<td class="numTd">
</td>
<td class="numTd">
</td>
</tr>
<tr>
<td class="numTd">
</td>
<td class="numTd">
</td>
<td class="numTd">
</td>
</tr>
<tr>
<td class="numTd">
</td>
<td class="numTd">
</td>
<td class="numTd">
</td>
</tr>
</table>
<table>
<tr>
<td ></td>
</tr>
</table>
</body>
</html>