游戏运行地址: http://www.uptoday.cn/fun/saolei
获取源代码:在http://www.uptoday.cn/fun/saolei/页面鼠标右键“查看源代码”
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.0 Transitional//EN
"
>
< HTML oncontextmenu = " return false " >
< HEAD >
< TITLE > 扫雷 </ TITLE >
< META NAME = " Generator " CONTENT = " EditPlus " >
< META NAME = " Author " CONTENT = "" >
< META NAME = " Keywords " CONTENT = " 扫雷,乐不思学 " >
</ HEAD >
< SCRIPT LANGUAGE = " JavaScript " >
<!--
/* ********************************************************************
作者:乐不思学 gsx123@gmail.com QQ:254539697
主页:http://www.uptoday.cn
日期:2007-4 完成
功能:纯JAVASCRIPT代码游戏 - 扫雷
*********************************************************************** */
/* 常量 */
var game = " 俄罗斯方块 " ;
var msgDilei = " <IMG SRC=lei.gif WIDTH=20 HEIGHT=20 BORDER=0 alt='雷' title='雷'> " ; // 地雷
var msgMark = " <FONT SIZE=4 COLOR=#FF0099><b>?</b></FONT> " ; // 可疑标记
var msgGameOver = " <b>!GAME OVER!</b>what a pity!。。。 " ;
var msgSendScore = " 厉害!点击发送成绩,加入扫雷英雄榜! " ;
// ********************//
/* 全局变量 */
var num = 0 ; // 雷数
var isend = " no " ; // 游戏是否已结束
var AA = new Array(); // 格子是否有雷的标记(0无1有)
var BB = new Array(); // 无雷格子显示的数字,即周围8格雷数
var bj = new Array(); // 是否已做可疑标记
var tc = new Array(); // 是否已探测
for (x = 0 ;x <= 11 ; x ++ ) // 初始化,随机产生雷
{ AA[x] = new Array();
bj[x] = new Array();
tc[x] = new Array();
for (y = 0 ;y <= 11 ;y ++ )
{
if (x == 00 || y == 0 || x == 11 || y == 11 )
{AA[x][y] = 0 ;}
else {
AA[x][y] = Math.random();
AA[x][y] = Math.round(AA[x][y]);
if (AA[x][y] == 1 ){num ++ ;}
}
bj[x][y] = 0 ;
tc[x][y] = 0 ;
}
}
for (m = 1 ;m <= 10 ;m ++ ) // 控制雷数在25左右
{
for (n = 1 ; n <= 10 ; n ++ )
{
if (AA[m][n] == 1 )
{
var s;
s = Math.random();
s = Math.round(s);
if (s == 1 ){ AA[m][n] = 0 ;}
}
}
}
num = 0 ;
for (i = 1 ;i <= 10 ; i ++ ) // 计算无雷格子显示的数字
{ BB[i] = new Array();
for (j = 1 ; j <= 10 ; j ++ )
{ BB[i][j] = 0 ;
if (AA[i][j] == 0 )
{
BB[i][j] = AA[i - 1 ][j - 1 ] + AA[i - 1 ][j] + AA[i - 1 ][j + 1 ] + AA[i][j - 1 ] + AA[i][j + 1 ] + AA[i + 1 ][j - 1 ] + AA[i + 1 ][j] + AA[i + 1 ][j + 1 ];
}
else { num ++ ;BB[i][j] = 9 ;}
}
}
// 秒表
var ms = 0 ; // 秒数
function piaomiao()
{
if (isend == " no " )
{
ms ++ ;
document.getElementById( " miaobiao " ).innerHTML = " 已用时: " + ms + " 秒 " ;
}
}
var jishi = 0 ;out = 0 ; // jishi=记时标记; out=已探索格数
function islei() // 点击鼠标踩雷 程序主要部分
{
if (jishi == 0 ){jishi = 1 ;startjishi = setInterval( " piaomiao() " , 1000 );} // 开始记时
var a,b;
a = islei.arguments[ 0 ];
b = islei.arguments[ 1 ];
tc[a][b] = 1 ;
if (bj[a][b] == 1 )
{document.getElementById( " d " + a + " _ " + b).innerHTML = "" ;
bj[a][b] = 0 ;}
else {
if (AA[a][b] == 1 && isend == " no " ) // 踩中雷了!!
{
document.getElementById( " d " + a + " _ " + b).innerHTML = msgDilei;
document.getElementById( " show " ).innerHTML = msgGameOver;
clearInterval(startjishi);
showall();
isend = " yes "
document.getElementById( " cj " ).value = " 失败 " + ( 100 - out - num);
}
else if (AA[a][b] == 1 && isend == " yes " )
{document.getElementById( " d " + a + " _ " + b).innerHTML = msgDilei;
clearInterval(startjishi); }
else { // 安全,没踩中
document.getElementById( " d " + a + " _ " + b).innerHTML = BB[a][b];
if (document.getElementById( " d " + a + " _ " + b).style.backgroundColor != "" && isend == " no " ){out ++ ;}
document.getElementById( " yu " ).innerHTML = " 还有<FONT SIZE=4 COLOR=red> " + ( 100 - out - num) + " </FONT>处无雷区等待探测 " ;
if (( 100 - out - num) == 0 && isend == " no " ) // 成功!
{window.alert( " 恭喜! " );
isend = " yes " ;
showall();
clearInterval(startjishi);
document.getElementById( ' show ' ).innerHTML = msgSendScore;
player = prompt( " 扫雷成功! 您用时: " + document.getElementById( " miaobiao " ).innerHTML + " 留名: " , " 匿名玩家 " );
window.frames[ 0 ].location.href = " http://www.uptoday.cn/fun/record.asp?game=扫雷&player= " + player + " &score= " + document.getElementById( " miaobiao " ).innerHTML + "" ;
document.getElementById( " cj " ).value = document.getElementById( " miaobiao " ).innerHTML;}
if (BB[a][b] == 0 ) {safe(a,b);}
}
document.getElementById( " d " + a + " _ " + b).style.backgroundColor = "" ;
}
} // 主要部分End
// --- start
function safe(a,b) // 为0时翻转周围格子
{
if (a != 0 && a != 11 && b != 0 && b != 11 )
{
if (BB[a][b] == 0 )
{ifo(a - 1 ,b - 1 );ifo(a - 1 ,b);ifo(a - 1 ,b + 1 );ifo(a,b - 1 );ifo(a,b + 1 );ifo(a + 1 ,b - 1 );ifo(a + 1 ,b);ifo(a + 1 ,b + 1 );}
}
}
function ifo(m,n)
{
if ((m != 0 && m != 11 ) && (n != 0 && n != 11 ) && tc[m][n] == 0 )
{
document.getElementById( " d " + m + " _ " + n).style.backgroundColor = "" ;
document.getElementById( " d " + m + " _ " + n).innerHTML = BB[m][n];
if (tc[m][n] == 0 && isend == " no " ) {out ++ ;}
tc[m][n] = 1 ;
document.getElementById( " yu " ).innerHTML = " 还有<FONT SIZE=4 COLOR=red> " + ( 100 - out - num) + " </FONT>处无雷区等待探测 " ;
if (BB[m][n] == 0 ){safe(m,n);} //
}
}
// --- end
function showall() // 踩中雷后显示全部格子
{out = 100 - num;
isend = " yes " ;
for (i = 1 ;i <= 10 ;i ++ )
{
for (j = 1 ;j <= 10 ;j ++ )
{document.getElementById( " d " + i + " _ " + j).style.backgroundColor = "" ;
if (AA[i][j] == 0 ) {document.getElementById( " d " + i + " _ " + j).innerHTML = BB[i][j];}
else {document.getElementById( " d " + i + " _ " + j).innerHTML = msgDilei;}
}
}
}
function biaoji(i,j) // 鼠标右键标记雷
{
if (event.button == 2 && tc[i][j] == 0 ) {
if (bj[i][j] == 0 )
{
document.getElementById( " d " + i + " _ " + j).innerHTML = msgMark;
bj[i][j] = 1 ;
}
else
{
document.getElementById( " d " + i + " _ " + j).innerHTML = " " ;
bj[i][j] = 0 ;
}
}
}
function check() // 游戏未结束不能发送成绩
{
if (( 100 - out - num) > 1 )
{window.alert( " 还没玩完呢,不能发送! " );
event.returnValue = false ;
}
}
function safestart() // 安全开局
{
var ss = 0 ;
for (i = 1 ; i <= 10 && ss == 0 ;i ++ )
{
for (j = 1 ; j <= 10 && ss == 0 ;j ++ )
{ if (BB[i][j] == 0 )
{islei(i,j);
ss = 1 ;
break ;}
}
}
}
// -->
</ SCRIPT >
< BODY onload = " document.getElementById('show').innerHTML='小心,此处有地雷'+num+'个';document.getElementById('leishu').value=num; " >
< SCRIPT LANGUAGE = " JavaScript " >
document.write( " <TABLE border=1 bordercolor=#66CCCC width=280 height=280 cellpadding=0 cellspacing=0 align=center> " );
for (i = 1 ;i <= 10 ;i ++ )
{ document.write( " <TR> " );
for (j = 1 ;j <= 10 ;j ++ )
{
document.write( " <TD id="d " + i + " _ " + j + " " οnclick="islei( " + i + " , " + j + " )" οnmοusedοwn="biaoji( " + i + " , " + j + " )" align="center" valign="center" width="28" height="28" style="background:#DBDBDB;cursor:hand;" > </TD> " );
}
document.write( " </TR> " );
}
document.write( " </TABLE> " );
</ SCRIPT >
< div id = " show " align = " center " >& nbsp; </ div >< br >
< div id = " yu " align = " center " >< button onclick = " safestart(); " > 安全开局 </ button ></ div >< br >
< div id = " miaobiao " align = " center " > 已用时: & nbsp; 0 & nbsp;秒 </ div >
< TABLE align = " center " >
< TR >
< TD >< button onclick = " window.location.reload(); " > 重来 </ button ></ TD >
< FORM METHOD = POST ACTION = " saolei_cj.asp " target = _parent >< TD >
< INPUT TYPE = " text " NAME = " daming " value = " 输入大名 " onclick = " this.value='' " size = " 10 " >
< INPUT TYPE = " hidden " NAME = " leishu " value = "" >
< INPUT TYPE = " hidden " NAME = " cj " value = " 失败 " >
< INPUT TYPE = " submit " value = " 发送成绩! " onclick = " check() " >
</ TD ></ FORM >
</ TR >
</ TABLE >
< div align = " center " >< ADDRESS > made by 乐不思学 < a href = " http://uptoday.cn " target = _blank > http: // uptoday.cn </a></ADDRESS></div><br>
< SCRIPT LANGUAGE = " JavaScript " >
for (i = 0 ;i <= 11 ;i ++ )
{
document.write( " <div id="d0_ " + i + " " style="display:none"></div> " );
}
for (i = 0 ;i <= 11 ;i ++ )
{
document.write( " <div id="d11_ " + i + " " style="display:none"></div> " );
}
for (i = 1 ;i <= 10 ;i ++ )
{
document.write( " <div id="d " + i + " _0" style="display:none"></div> " );
}
for (i = 1 ;i <= 10 ;i ++ )
{
document.write( " <div id="d " + i + " _11" style="display:none"></div> " );
}
</ SCRIPT >
< SCRIPT language = JavaScript src = " http://www.uptoday.cn/fun/playrecord.js " ></ SCRIPT >
</ BODY >
</ HTML >
< HTML oncontextmenu = " return false " >
< HEAD >
< TITLE > 扫雷 </ TITLE >
< META NAME = " Generator " CONTENT = " EditPlus " >
< META NAME = " Author " CONTENT = "" >
< META NAME = " Keywords " CONTENT = " 扫雷,乐不思学 " >
</ HEAD >
< SCRIPT LANGUAGE = " JavaScript " >
<!--
/* ********************************************************************
作者:乐不思学 gsx123@gmail.com QQ:254539697
主页:http://www.uptoday.cn
日期:2007-4 完成
功能:纯JAVASCRIPT代码游戏 - 扫雷
*********************************************************************** */
/* 常量 */
var game = " 俄罗斯方块 " ;
var msgDilei = " <IMG SRC=lei.gif WIDTH=20 HEIGHT=20 BORDER=0 alt='雷' title='雷'> " ; // 地雷
var msgMark = " <FONT SIZE=4 COLOR=#FF0099><b>?</b></FONT> " ; // 可疑标记
var msgGameOver = " <b>!GAME OVER!</b>what a pity!。。。 " ;
var msgSendScore = " 厉害!点击发送成绩,加入扫雷英雄榜! " ;
// ********************//
/* 全局变量 */
var num = 0 ; // 雷数
var isend = " no " ; // 游戏是否已结束
var AA = new Array(); // 格子是否有雷的标记(0无1有)
var BB = new Array(); // 无雷格子显示的数字,即周围8格雷数
var bj = new Array(); // 是否已做可疑标记
var tc = new Array(); // 是否已探测
for (x = 0 ;x <= 11 ; x ++ ) // 初始化,随机产生雷
{ AA[x] = new Array();
bj[x] = new Array();
tc[x] = new Array();
for (y = 0 ;y <= 11 ;y ++ )
{
if (x == 00 || y == 0 || x == 11 || y == 11 )
{AA[x][y] = 0 ;}
else {
AA[x][y] = Math.random();
AA[x][y] = Math.round(AA[x][y]);
if (AA[x][y] == 1 ){num ++ ;}
}
bj[x][y] = 0 ;
tc[x][y] = 0 ;
}
}
for (m = 1 ;m <= 10 ;m ++ ) // 控制雷数在25左右
{
for (n = 1 ; n <= 10 ; n ++ )
{
if (AA[m][n] == 1 )
{
var s;
s = Math.random();
s = Math.round(s);
if (s == 1 ){ AA[m][n] = 0 ;}
}
}
}
num = 0 ;
for (i = 1 ;i <= 10 ; i ++ ) // 计算无雷格子显示的数字
{ BB[i] = new Array();
for (j = 1 ; j <= 10 ; j ++ )
{ BB[i][j] = 0 ;
if (AA[i][j] == 0 )
{
BB[i][j] = AA[i - 1 ][j - 1 ] + AA[i - 1 ][j] + AA[i - 1 ][j + 1 ] + AA[i][j - 1 ] + AA[i][j + 1 ] + AA[i + 1 ][j - 1 ] + AA[i + 1 ][j] + AA[i + 1 ][j + 1 ];
}
else { num ++ ;BB[i][j] = 9 ;}
}
}
// 秒表
var ms = 0 ; // 秒数
function piaomiao()
{
if (isend == " no " )
{
ms ++ ;
document.getElementById( " miaobiao " ).innerHTML = " 已用时: " + ms + " 秒 " ;
}
}
var jishi = 0 ;out = 0 ; // jishi=记时标记; out=已探索格数
function islei() // 点击鼠标踩雷 程序主要部分
{
if (jishi == 0 ){jishi = 1 ;startjishi = setInterval( " piaomiao() " , 1000 );} // 开始记时
var a,b;
a = islei.arguments[ 0 ];
b = islei.arguments[ 1 ];
tc[a][b] = 1 ;
if (bj[a][b] == 1 )
{document.getElementById( " d " + a + " _ " + b).innerHTML = "" ;
bj[a][b] = 0 ;}
else {
if (AA[a][b] == 1 && isend == " no " ) // 踩中雷了!!
{
document.getElementById( " d " + a + " _ " + b).innerHTML = msgDilei;
document.getElementById( " show " ).innerHTML = msgGameOver;
clearInterval(startjishi);
showall();
isend = " yes "
document.getElementById( " cj " ).value = " 失败 " + ( 100 - out - num);
}
else if (AA[a][b] == 1 && isend == " yes " )
{document.getElementById( " d " + a + " _ " + b).innerHTML = msgDilei;
clearInterval(startjishi); }
else { // 安全,没踩中
document.getElementById( " d " + a + " _ " + b).innerHTML = BB[a][b];
if (document.getElementById( " d " + a + " _ " + b).style.backgroundColor != "" && isend == " no " ){out ++ ;}
document.getElementById( " yu " ).innerHTML = " 还有<FONT SIZE=4 COLOR=red> " + ( 100 - out - num) + " </FONT>处无雷区等待探测 " ;
if (( 100 - out - num) == 0 && isend == " no " ) // 成功!
{window.alert( " 恭喜! " );
isend = " yes " ;
showall();
clearInterval(startjishi);
document.getElementById( ' show ' ).innerHTML = msgSendScore;
player = prompt( " 扫雷成功! 您用时: " + document.getElementById( " miaobiao " ).innerHTML + " 留名: " , " 匿名玩家 " );
window.frames[ 0 ].location.href = " http://www.uptoday.cn/fun/record.asp?game=扫雷&player= " + player + " &score= " + document.getElementById( " miaobiao " ).innerHTML + "" ;
document.getElementById( " cj " ).value = document.getElementById( " miaobiao " ).innerHTML;}
if (BB[a][b] == 0 ) {safe(a,b);}
}
document.getElementById( " d " + a + " _ " + b).style.backgroundColor = "" ;
}
} // 主要部分End
// --- start
function safe(a,b) // 为0时翻转周围格子
{
if (a != 0 && a != 11 && b != 0 && b != 11 )
{
if (BB[a][b] == 0 )
{ifo(a - 1 ,b - 1 );ifo(a - 1 ,b);ifo(a - 1 ,b + 1 );ifo(a,b - 1 );ifo(a,b + 1 );ifo(a + 1 ,b - 1 );ifo(a + 1 ,b);ifo(a + 1 ,b + 1 );}
}
}
function ifo(m,n)
{
if ((m != 0 && m != 11 ) && (n != 0 && n != 11 ) && tc[m][n] == 0 )
{
document.getElementById( " d " + m + " _ " + n).style.backgroundColor = "" ;
document.getElementById( " d " + m + " _ " + n).innerHTML = BB[m][n];
if (tc[m][n] == 0 && isend == " no " ) {out ++ ;}
tc[m][n] = 1 ;
document.getElementById( " yu " ).innerHTML = " 还有<FONT SIZE=4 COLOR=red> " + ( 100 - out - num) + " </FONT>处无雷区等待探测 " ;
if (BB[m][n] == 0 ){safe(m,n);} //
}
}
// --- end
function showall() // 踩中雷后显示全部格子
{out = 100 - num;
isend = " yes " ;
for (i = 1 ;i <= 10 ;i ++ )
{
for (j = 1 ;j <= 10 ;j ++ )
{document.getElementById( " d " + i + " _ " + j).style.backgroundColor = "" ;
if (AA[i][j] == 0 ) {document.getElementById( " d " + i + " _ " + j).innerHTML = BB[i][j];}
else {document.getElementById( " d " + i + " _ " + j).innerHTML = msgDilei;}
}
}
}
function biaoji(i,j) // 鼠标右键标记雷
{
if (event.button == 2 && tc[i][j] == 0 ) {
if (bj[i][j] == 0 )
{
document.getElementById( " d " + i + " _ " + j).innerHTML = msgMark;
bj[i][j] = 1 ;
}
else
{
document.getElementById( " d " + i + " _ " + j).innerHTML = " " ;
bj[i][j] = 0 ;
}
}
}
function check() // 游戏未结束不能发送成绩
{
if (( 100 - out - num) > 1 )
{window.alert( " 还没玩完呢,不能发送! " );
event.returnValue = false ;
}
}
function safestart() // 安全开局
{
var ss = 0 ;
for (i = 1 ; i <= 10 && ss == 0 ;i ++ )
{
for (j = 1 ; j <= 10 && ss == 0 ;j ++ )
{ if (BB[i][j] == 0 )
{islei(i,j);
ss = 1 ;
break ;}
}
}
}
// -->
</ SCRIPT >
< BODY onload = " document.getElementById('show').innerHTML='小心,此处有地雷'+num+'个';document.getElementById('leishu').value=num; " >
< SCRIPT LANGUAGE = " JavaScript " >
document.write( " <TABLE border=1 bordercolor=#66CCCC width=280 height=280 cellpadding=0 cellspacing=0 align=center> " );
for (i = 1 ;i <= 10 ;i ++ )
{ document.write( " <TR> " );
for (j = 1 ;j <= 10 ;j ++ )
{
document.write( " <TD id="d " + i + " _ " + j + " " οnclick="islei( " + i + " , " + j + " )" οnmοusedοwn="biaoji( " + i + " , " + j + " )" align="center" valign="center" width="28" height="28" style="background:#DBDBDB;cursor:hand;" > </TD> " );
}
document.write( " </TR> " );
}
document.write( " </TABLE> " );
</ SCRIPT >
< div id = " show " align = " center " >& nbsp; </ div >< br >
< div id = " yu " align = " center " >< button onclick = " safestart(); " > 安全开局 </ button ></ div >< br >
< div id = " miaobiao " align = " center " > 已用时: & nbsp; 0 & nbsp;秒 </ div >
< TABLE align = " center " >
< TR >
< TD >< button onclick = " window.location.reload(); " > 重来 </ button ></ TD >
< FORM METHOD = POST ACTION = " saolei_cj.asp " target = _parent >< TD >
< INPUT TYPE = " text " NAME = " daming " value = " 输入大名 " onclick = " this.value='' " size = " 10 " >
< INPUT TYPE = " hidden " NAME = " leishu " value = "" >
< INPUT TYPE = " hidden " NAME = " cj " value = " 失败 " >
< INPUT TYPE = " submit " value = " 发送成绩! " onclick = " check() " >
</ TD ></ FORM >
</ TR >
</ TABLE >
< div align = " center " >< ADDRESS > made by 乐不思学 < a href = " http://uptoday.cn " target = _blank > http: // uptoday.cn </a></ADDRESS></div><br>
< SCRIPT LANGUAGE = " JavaScript " >
for (i = 0 ;i <= 11 ;i ++ )
{
document.write( " <div id="d0_ " + i + " " style="display:none"></div> " );
}
for (i = 0 ;i <= 11 ;i ++ )
{
document.write( " <div id="d11_ " + i + " " style="display:none"></div> " );
}
for (i = 1 ;i <= 10 ;i ++ )
{
document.write( " <div id="d " + i + " _0" style="display:none"></div> " );
}
for (i = 1 ;i <= 10 ;i ++ )
{
document.write( " <div id="d " + i + " _11" style="display:none"></div> " );
}
</ SCRIPT >
< SCRIPT language = JavaScript src = " http://www.uptoday.cn/fun/playrecord.js " ></ SCRIPT >
</ BODY >
</ HTML >