<HTML><HEAD><TITLE>Сапер</TITLE><style>body{scrollbar-base-color: #4444FF}</style></HEAD>
<BODY BGCOLOR="#002040">
<CENTER>
<BR>
<BR>
<TABLE BGCOLOR=#CCCCAA BORDER=1>
<TR>
<TD><A HREF='#' NAME=1 onClick="Move(0,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=2 onClick="Move(1,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=3 onClick="Move(2,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=4 onClick="Move(3,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=5 onClick="Move(4,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=6 onClick="Move(5,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=7 onClick="Move(6,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=8 onClick="Move(7,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=9 onClick="Move(8,0)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=10 onClick="Move(0,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=11 onClick="Move(1,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=12 onClick="Move(2,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=13 onClick="Move(3,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=14 onClick="Move(4,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=15 onClick="Move(5,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=16 onClick="Move(6,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=17 onClick="Move(7,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=18 onClick="Move(8,1)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=19 onClick="Move(0,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=20 onClick="Move(1,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=21 onClick="Move(2,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=22 onClick="Move(3,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=23 onClick="Move(4,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=24 onClick="Move(5,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=25 onClick="Move(6,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=26 onClick="Move(7,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=27 onClick="Move(8,2)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=28 onClick="Move(0,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=29 onClick="Move(1,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=30 onClick="Move(2,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=31 onClick="Move(3,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=32 onClick="Move(4,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=33 onClick="Move(5,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=34 onClick="Move(6,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=35 onClick="Move(7,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=36 onClick="Move(8,3)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=37 onClick="Move(0,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=38 onClick="Move(1,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=39 onClick="Move(2,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=40 onClick="Move(3,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=41 onClick="Move(4,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=42 onClick="Move(5,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=43 onClick="Move(6,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=44 onClick="Move(7,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=45 onClick="Move(8,4)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=46 onClick="Move(0,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=47 onClick="Move(1,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=48 onClick="Move(2,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=49 onClick="Move(3,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=50 onClick="Move(4,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=51 onClick="Move(5,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=52 onClick="Move(6,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=53 onClick="Move(7,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=54 onClick="Move(8,5)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=55 onClick="Move(0,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=56 onClick="Move(1,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=57 onClick="Move(2,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=58 onClick="Move(3,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=59 onClick="Move(4,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=60 onClick="Move(5,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=61 onClick="Move(6,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=62 onClick="Move(7,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=63 onClick="Move(8,6)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=64 onClick="Move(0,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=65 onClick="Move(1,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=66 onClick="Move(2,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=67 onClick="Move(3,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=68 onClick="Move(4,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=69 onClick="Move(5,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=70 onClick="Move(6,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=71 onClick="Move(7,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=72 onClick="Move(8,7)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
<TR>
<TD><A HREF='#' NAME=73 onClick="Move(0,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=74 onClick="Move(1,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=75 onClick="Move(2,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=76 onClick="Move(3,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=77 onClick="Move(4,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=78 onClick="Move(5,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=79 onClick="Move(6,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=80 onClick="Move(7,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
<TD><A HREF='#' NAME=81 onClick="Move(8,8)"><IMG SRC="Saper/POLE.jpg"></A></TD>
</TR>
</TABLE
</CENTER>
<BR>
<FORM>
<BUTTON STYLE="{font-size:24px;background-color:#002040;border-width:0;color:red" onClick="NewGameForSer()">НОВАЯ ИГРА</BUTTON>
</FORM>
<SCRIPT>
var massivA = new Array (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
// дополнительный массив для поиска пути
var massivB = new Array (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var Nomer = 0;
//вызов новой игры
NewGameForSer();
//------------------------------------------------------------------------ Функция прорисовки клетки
function Draw(x1, y1)
{
if (massivA[ 9 * y1 + x1]>19) document.images[ 9 * y1 + x1 ].src='Saper/MINE.jpg'
else
document.images[ 9 * y1 + x1 ].src='Saper/'+massivA[ 9 * y1 + x1]+'.jpg';
}
//------------------------------------------------------------------------ Новая игра
function NewGameForSer()
{
Nomer = 0;
//очистка массивов
for (var x = -2; x<= 11; x++)
for (var y = -2; y<= 11; y++)
{
massivA[ 9 * y + x ] = 0;
massivB[ 9 * y + x ] = 0;
}
for (var x = 0; x<= 8; x++)
for (var y = 0; y<= 8; y++)
document.images[ 9 * y + x ].src = 'Saper/POLE.jpg';
//расстановка мин на поле
var i = 1;
while (i<14)
{
x = Math.floor(Math.random()*9);
y = Math.floor(Math.random()*9);
if (massivA[ 9 * y + x ]==20) continue;
massivA[ 9 * y + x ] = 20;
i++;
}
//расстановка цифр вокруг мин
for (x = 0; x<=8; x++)
for (y = 0; y<=8; y++)
if (massivA[ 9 * y + x ]>19)
{
if ((x - 1 >= 0) && ( x - 1 <=8 ))
massivA[ 9 * y + x -1 ]++;
if ((x - 1 >= 0) && ( x - 1 <=8 ) && (y - 1 >= 0) && (y - 1 <= 8))
massivA[ 9 * (y - 1) + x -1 ]++;
if ((y - 1 >= 0) && ( y - 1 <=8 ))
massivA[ 9 * (y - 1) + x ]++;
if ((x + 1 >= 0) && ( x + 1 <=8 ) && (y - 1 >= 0) && (y - 1 <= 8))
massivA[ 9 * (y - 1) + x + 1 ]++;
if ((x + 1 >= 0) && (x + 1 <=8 ))
massivA[ 9 * y + x + 1 ]++;
if ((x + 1 >= 0) && ( x + 1 <=8 ) && (y + 1 >= 0) && (y + 1 <= 8))
massivA[ 9 * (y + 1) + x + 1 ]++;
if ((y + 1 >= 0) && (y + 1 <=8 ))
massivA[ 9 * (y + 1) + x ]++;
if ((x - 1 >= 0) && ( x - 1 <=8 ) && (y + 1 >= 0) && (y + 1 <= 8))
massivA[ 9 * (y + 1) + x - 1 ]++;
}
}
//------------------------------------------------------------------------ Выбор клетки
function Move(x1,y1)
{
if (massivA[ 9 * y1 + x1 ]>19)
{
Draw( x1, y1);
alert(' Вы проиграли! ');
NewGameForSer();
}
else
{
if (massivB[ 9 * y1 + x1 ] == 0 )
{
massivB[ 9 * y1 + x1 ] = 1;
Nomer++;
Draw(x1, y1);
if (Nomer==68) GamesWin();
if (massivA[ 9 * y1 + x1 ] == 0 ) FindZero(x1, y1);
}
}
}
// --------------------------------------------- Функция для поиска пустоты
function FindZero(x1, y1)
{
for (var Colonka = x1 - 1; Colonka <= x1 + 1; Colonka++)
for (var Stolbik = y1 - 1; Stolbik <= y1 + 1; Stolbik++)
{
if (Nomer==68) GamesWin();
if ((Colonka >= 0) && (Colonka <9) && (Stolbik >= 0)
&& (Stolbik <9) && (massivB[ 9 * Stolbik + Colonka ]==0))
{
if ((Colonka == x1-1) && (Stolbik == y1-1) && (massivA[ 9 * (y1 - 1) + x1 -1 ] == 0)) continue;
if ((Colonka == x1+1) && (Stolbik == y1-1) && (massivA[ 9 * (y1 - 1) + x1 + 1] == 0)) continue;
if ((Colonka == x1+1) && (Stolbik == y1+1) && (massivA[ 9 * (y1 + 1) + x1 + 1 ] == 0)) continue;
if ((Colonka == x1-1) && (Stolbik == y1+1) && (massivA[ 9 * (y1 + 1) + x1 - 1 ] == 0)) continue;
if (massivA[ 9 * Stolbik + Colonka ]==0)
{
Draw(Colonka, Stolbik);
Nomer++;
massivB[ 9 * Stolbik + Colonka ] = 1;
FindZero(Colonka, Stolbik);
}
else
{
Nomer++;
massivB[ 9 * Stolbik + Colonka ] = 1;
Draw(Colonka, Stolbik);
}
}
}
}
//----------------------------------- Обработка выигрыша
function GamesWin()
{
for (x = 0; x<=8; x++)
for (y = 0; y<=8; y++)
if (massivA[ 9 * y + x ]>19) document.images[ 9 * y + x ].src = 'Saper/FLAG.jpg';
alert(' Вы выиграли! ');
NewGameForSer();
}
</SCRIPT>
</BODY>
</HTML>