102 lines
No EOL
2.6 KiB
HTML
102 lines
No EOL
2.6 KiB
HTML
<html>
|
|
<HEAD>
|
|
<title>Mystic Square</title>
|
|
<meta name="viewport" content="width=240">
|
|
<!-- Original: Roger Zeitel (rzeitel@mars.superlink.net) -->
|
|
<!-- Web Site: http://mars.superlink.net/rzeitel/games.html -->
|
|
<!-- http://javascript.internet.com -->
|
|
<SCRIPT>
|
|
function initArray() {
|
|
this.length = initArray.arguments.length
|
|
for (var i = 0; i < this.length; i++)
|
|
this[i+1] = initArray.arguments[i]
|
|
}
|
|
var pos = new initArray(9,9,9,9,9,9,9,9,9);
|
|
var nummoves= 0;
|
|
function random() {
|
|
today = new Date();
|
|
num = today.getTime();
|
|
num = Math.round(Math.abs(Math.sin (num)*1000000)) % 9;
|
|
return num;
|
|
}
|
|
function display(pos) {
|
|
for (var i=0; i<9; i++) {
|
|
document.forms[0].elements[i].value = pos[i];
|
|
}
|
|
document.forms[0].moves.value= nummoves;
|
|
win();
|
|
}
|
|
function move(num) {
|
|
if (num < 8 && pos[num+1]==0) {
|
|
pos[num+1]= pos[num];
|
|
pos[num]= 0;
|
|
nummoves++;
|
|
}
|
|
else if (num > 0 && pos[num-1]==0) {
|
|
pos[num-1]= pos[num];
|
|
pos[num]= 0;
|
|
nummoves++;
|
|
}
|
|
else if (num > 2 && pos[num-3]==0) {
|
|
pos[num-3]= pos[num];
|
|
pos[num]= 0;
|
|
nummoves++;
|
|
}
|
|
else if (num < 6 && pos[num+3]==0 ) {
|
|
pos[num+3]= pos[num];
|
|
pos[num]= 0;
|
|
nummoves++;
|
|
}
|
|
display(pos);
|
|
}
|
|
function win() {
|
|
if (pos[0]== 1 & pos[1]== 2 & pos[2]== 3 & pos[3]== 4 &
|
|
pos[4]== 5 & pos[5]== 6 & pos[6]== 7 & pos[7]== 8 & pos[8]== 0) {
|
|
if (confirm('You did it! Do you want to play again?')) newgame();
|
|
}
|
|
}
|
|
function newgame() {
|
|
var x=1;
|
|
for (var i=0; i<9; i++) {
|
|
pos[i]=9;
|
|
}
|
|
for (var i=0; i<9;i++) {
|
|
randomnum=random();
|
|
if (randomnum==9) randomnum=8;
|
|
x=1;
|
|
for (var j=0; j<9; j++) {
|
|
if (j==i)
|
|
continue;
|
|
if (randomnum==pos[j]) {
|
|
x=0;
|
|
break;
|
|
}
|
|
}
|
|
if (x==0) {
|
|
i--;
|
|
continue;
|
|
}
|
|
pos[i]=randomnum;
|
|
}
|
|
nummoves=0;
|
|
display(pos);
|
|
}
|
|
function hlp(){
|
|
alert("Put the numbers in order so that they read 1-8. The 0 is the 'empty' place. Click on any number next to 0 and they will switch places.");
|
|
}
|
|
</SCRIPT>
|
|
</HEAD>
|
|
<BODY onLoad="window.newgame()">
|
|
<center>
|
|
Mystic Square - <a href="javascript:hlp();">?</a>
|
|
<FORM>
|
|
<input type="button" value=" 1 " onClick="window.move(0)"><input type="button" value=" 2 " onClick="window.move(1)"><input type="button" value=" 3 " onClick="window.move(2)"><br>
|
|
<input type="button" value=" 4 " onClick="window.move(3)"><input type="button" value=" 5 " onClick="window.move(4)"><input type="button" value=" 6 " onClick="window.move(5)"><br>
|
|
<input type="button" value=" 7 " onClick="window.move(6)"><input type="button" value=" 8 " onClick="window.move(7)"><input type="button" value=" 0 " onClick="window.move(8)"><br>
|
|
Moves:<input name="moves" size=3 value="0">
|
|
<input type="submit" value="New Game" onClick="window.newgame()">
|
|
</FORM>
|
|
</center>
|
|
|
|
</BODY>
|
|
</html> |