欢迎光临
我们一直在努力

转贴一个扫雷游戏脚本

建站超值云服务器,限时71元/月

没有图片,大家自己做吧:-(
<script language="javascript">
<!– begin
dir = "";
var mines = [];
var shown = [];
var gridx, gridy, maxmines;
gridx = window.prompt("请输入你想要的行数","8");
gridxverify();
function gridxaccept(){
gridy = window.prompt("请输入你想要的列数","8");
gridyverify();
}
function gridyaccept(){
maxmines = window.prompt("请输入你想要的地雷数目","10");
maxminesverify();
}
function gridxverify(){
if (gridx > 50){
alert("你输入的数字不能超过50.");
gridxreenter();
}
else if (gridx < 8){
alert("你输入的数字不能小于8.");
gridxreenter();
}
else gridxaccept();
}

function gridyverify(){
if (gridy > 50){
alert("that height is too big. please enter a new height.");
gridyreenter();
}
else if (gridy < 8){
alert("that height is too small. please enter a new height.");
gridyreenter();
}
else gridyaccept();
}
function maxminesverify(){
if (maxmines > 500){
alert("that number is too big. please enter a new number of mines.");
maxminesreenter();
}
else if (maxmines < 10){
alert("that number is too small. please enter a new number of mines.");
maxminesreenter();
}
else accepted();
}
// functions for reentering key variables, if necessary.
function gridxreenter(){
gridx = window.prompt("please enter a width.","8");
gridxverify();
}
function gridyreenter(){
gridy = window.prompt("please enter a height.","8");
gridyverify();
}
function maxminesreenter(){
maxmines = window.prompt("please enter the number of mines you want.","10");
maxminesverify();
}
function accepted(){
var squaresleft, flagsleft;
var elapsedtime;
var playing;
var placeflag;
var clicked;
}
var gridsq = gridx * 16;
var grid8 = gridsq – 128;
var grid16 = gridx – 8
var grid32 = grid16 * 8
var grid64 = grid16 * 16
var topbarwidth = 8 + grid64;
var menubarwidth = 86 + grid64;
var widewidth = gridx * 16;
var highheight = gridy * 16;
var cplleft = 6 + grid32;
var cplright = 4 + grid32;
var totalwidth = gridsq + 32;
var tw6 = totalwidth – 6;
var ww2 = widewidth + 2;
num=new array(10);
for (var i=0;i<10;i++) {
num[i]=new image()
num[i].src=i+".gif"
}
function keydown(e) {
if(document.layers)
placeflag = (e.modifiers & event.control_mask) > 0;
else
placeflag = window.event.ctrlkey;
setstatus();
}
function keyup(e) {
placeflag = false;
setstatus();
}
function newgame() {
// reset state arrays. mines holds the position of each mine. shown keeps
// track of the image shown at each grid location
var y;
for(y = 0; y < gridy; ++y)
{
mines[y] = [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false];
shown[y] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
}
// place the mines, making sure positions are unique
var m;
for(m = 0; m < maxmines; ++m) {
var x,y;
do {
x = math.floor(math.random() * gridx);
y = math.floor(math.random() * gridy);
} while(mines[y][x]);
mines[y][x] = true;
}
// initialize game variables
squaresleft = gridy * gridx;
flagsleft = maxmines;
elapsedtime = 0;
playing = true;
clicked = false
placeflag = false;
// insert the grid into the document
buildgrid();
// set up keypress handlers
if (document.layers)
window.captureevents(event.keydown | event.keyup);
window.onkeydown = keydown;
window.onkeyup = keyup;
// start the clock
setinterval("ticker()", 1000);
}
// clock tick handler
function ticker() {
if (playing) {
if (clicked) {
elapsedtime++;
setstatus();
   }
  }
}

// refreshing control panel
function setstatus() {
document.images.elapse3.src=num[elapsedtime-(math.floor(elapsedtime/10))*10].src;
document.images.elapse2.src=num[math.floor((elapsedtime-(math.floor(elapsedtime/100))*100)/10)].src;
document.images.elapse1.src=num[math.floor(elapsedtime/100)].src;
document.images.flag3.src=num[flagsleft-(math.floor(flagsleft/10))*10].src;
document.images.flag2.src=num[math.floor((flagsleft-(math.floor(flagsleft/100))*100)/10)].src;
document.images.flag1.src=num[math.floor(flagsleft/100)].src;
}
//function to insert all the img tags into the document
function buildgrid() {
document.write("<!– window –><div align=center> "
+"<!– top bar –> <table width="
+ totalwidth
+" border=0 cells"
+"pacing=0 cellpadding=0> <tr bgcolor=#bbbbbb heigh"
+"t=1> <td width=1 bgcolor=#bbbbbb></td><td width"
+"=1 bgcolor=#bbbbbb></td> <td width=1 bgcolor=#bbb"
+"bbb></td><td width="
+ tw6
+" bgcolor=#bbbbbb></td> <t"
+"d width=1 bgcolor=#bbbbbb></td> <td width=1 bgcol"
+"or=#bbbbbb></td> <td width=1 bgcolor=#000000></td"
+"></tr><tr height=1><td width=1 bgcolor=#bbbb"
+"bb></td><td width=1 bgcolor=#ffffff></td><td w"
+"idth=1 bgcolor=#ffffff></td><td bgcolor=#ffffff>"
+"</td><td width=1 bgcolor=#ffffff></td><td widt"
+"h=1 bgcolor=#888888></td><td width=1 bgcolor=#00"
+"0000></td></tr><tr height=1><td width=1 bgco"
+"lor=#bbbbbb></td><td width=1 bgcolor=#ffffff></t"
+"d><td width=1 bgcolor=#bbbbbb></td><td bgcolor"
+"=#bbbbbb></td><td width=1 bgcolor=#bbbbbb></td> "
+"<td width=1 bgcolor=#888888></td><td width=1 bg"
+"color=#000000></td></tr></table><!– title –>"
+"<table border=0 cellspacing=0 cellpadding=0><t"
+"r height=18><td width=1 bgcolor=#bbbbbb></td><"
+"td width=1 bgcolor=#ffffff></td><td width=1 bgco"
+"lor=#bbbbbb></td><td bgcolor=#000088><img src=shao/title.gif><img src=shao/a.gif height=1 width="
+ topbarwidth
+" name="
+"titlebaremptyspace></td><td><img src=shao/buttons.gif></td><td width=1 bgcolor=#bbbbbb></td><td"
+" width=1 bgcolor=#888888></td><td width=1 bgcolo"
+"r=#000000></td></tr></table><!– menu bar –> "
+"<table border=0 cellspacing=0 cellpadding=0> <tr"
+" height=20 bgcolor=#bbbbbb> <td width=1 bgcolor=#"
+"bbbbbb></td> <td><img src=shao/menu.gif></td><td> <"
+"img src=shao/a.gif height=1 width="
+ menubarwidth
+" name=menubaremp"
+"tyspace></td> <td width=1 bgcolor=#bbbbbb></td> "
+"<td width=1 bgcolor=#888888></td> <td width=1 bg"
+"color=#000000></td> </tr></table> <!– mine fiel"
+"d –> <table border=0 cellspacing=0 cellpadding=0"
+"> <tr height=11 width=160> <td width=1 bgcolor=#"
+"bbbbbb></td> <td width=1 bgcolor=#ffffff></td> <"
+"td width=1 bgcolor=#bbbbbb></td> <td><img src=shao/tl.gif></td> <td><img src=shao/header.gif width="
+ ww2
+" height=11></td> <td><img src=shao/tr.gif></td><td><"
+"img src=shao/right.gif width=5 height=11></td> </tr>"
+"</table><table width="
+ totalwidth
+" border=0 cellspacing=0 cellpadd"
+"ing=0> <tr height=33> <td width=1 bgcolor=#bbbbb"
+"b></td> <td width=1 bgcolor=#ffffff></td> <td wi"
+"dth=1 bgcolor=#bbbbbb></td> <td><img src=shao/cplleft.gif height=33 width=11></td> <td> <!– control"
+" panel –> <table width="
+ ww2
+" border=0 cellspacing="
+"0 cellpadding=0><tr height=4 width="
+ ww2
+"><td bgcolor=#bbbbbb"
+"></td></tr></table> <table width="
+ ww2
+" border=0 cel"
+"lspacing=0 cellpadding=0><tr height=26><td "
+"width=5 bgcolor=#bbbbbb></td><td><!– mines remai"
+"ning –> <table width=41 border=0 cellspacing=0 c"
+"ellpadding=0><tr bgcolor=#888888><td></td><td>"
+"</td><td></td> <td></td><td></td><td></td> <td><"
+"/td><td></td> <td width=1 bgcolor=#bbbbbb></td></"
+"tr> <tr bgcolor=#000000> <td width=1 bgcolor=#88"
+"8888></td> <td></td><td></td> <td></td><td></td>"
+"<td></td><td></td><td></td> <td width=1 bgcolor"
+"=#ffffff></td></tr> <tr bgcolor=#000000> <td wid"
+"th=1 bgcolor=#888888></td> <td width=1 bgcolor=#0"
+"00000></td> <td><img src=shao/0.gif name=flag1></t"
+"d><td width=2></td><td><img src=shao/1.gif name="
+"flag2></td><td width=2></td><td><img src=shao/0.gif name=flag3></td><td width=1></td> <td wid"
+"th=1 bgcolor=#ffffff></td></tr> <tr bgcolor=#0000"
+"00> <td width=1 bgcolor=#888888></td> <td></td><"
+"td></td> <td></td><td></td><td></td> <td></td><t"
+"d></td> <td width=1 bgcolor=#ffffff></td></tr> <"
+"tr bgcolor=#ffffff> <td width=1 bgcolor=#bbbbbb><"
+"/td> <td></td><td></td> <td></td><td></td><td></"
+"td> <td></td><td></td> <td></td></tr><"
+"tr bgcolor=#bbbbbb> <td width=1 bgcolor=#bbbbbb><"
+"/td> <td></td><td></td> <td></td><td></td><td></"
+"td> <td></td><td></td> <td></td></tr></table><!–"
+" end mines remaini"
+"ng –> </td> <td bgcolor=#bbbbbb><img height=1 "
+"src=a.gif width=" + cplleft + "name=cplleft>"
+"<td><img src=shao/btnsmile.gif name=condition onmo"
+"usedown=document.images.condition.s"
+rc="shao/btnsmil2.gif"
+"; onmouseu"
+"p=document.images.condition.s"
+rc="shao/btnsmile.gif";location.reload();
+";></td> <td width=4 bgcolor=#bbbbbb>"
+"<img height=1 src=shao/a.gif"
+" width=" + cplright + ">"
+"</td> <td> <!– elapsed time –> <table width=4"
+"1 border=0 cellspacing=0 cellpadding=0> <tr bgcol"
+"or=#888888> <td></td><td></td><td></td> <td></td"
+"><td></td><td></td><td></td><td></td> <td width"
+"=1 bgcolor=#bbbbbb></td></tr> <tr bgcolor=#000000"
+"> <td width=1 bgcolor=#888888></td> <td></td><td"
+"></td> <td></td><td></td><td></td> <td></td><td>"
+"</td> <td width=1 bgcolor=#ffffff></td></tr> <tr"
+" bgcolor=#000000> <td width=1 bgcolor=#888888></t"
+"d> <td width=1 bgcolor=#000000></td> <td><img sr"
+"c=shao/0.gif name=elapse1></td> <td width=2></td> "
+"<td><img src=shao/0.gif name=elapse2></td> <td wi"
+"dth=2></td> <td><img src=shao/0.gif name=elapse3><"
+"/td> <td width=1></td> <td width=1 bgcolor=#ffff"
+"ff></td></tr> <tr bgcolor=#000000> <td width=1 b"
+"gcolor=#888888></td> <td></td><td></td> <td></td"
+"><td></td><td></td> <td></td><td></td> <td width"
+"=1 bgcolor=#ffffff></td></tr> <tr bgcolor=#ffffff"
+"> <td width=1 bgcolor=#bbbbbb></td> <td></td><td"
+"></td> <td></td><td></td><td></td> <td></td><td>"
+"</td> <td></td></tr> <"
+"tr bgcolor=#bbbbbb> <td width=1 bgcolor=#bbbbbb><"
+"/td> <td></td><td></td> <td></td><td></td><td></"
+"td> <td></td><td></td> <td></td></tr> "
+"</table> <!– end elapsed time –> </td> <td "
+"width=7 bgcolor=#bbbbbb></td></tr></table><table "
+"width="
+ ww2
+" border=0 cellspacing=0 cellpadding=0> "
+"<tr height=3><td bgcolor=#bbbbbb></td></tr></table"
+"> <!– end control panel –> </td> <td><img src"
+"=shao/cplright.gif height=33 width=11></td> <td><img"
+" src=shao/right.gif height=33 width=5></td> </tr></t"
+"able><!– separator –> <table border=0 cells"
+"pacing=0 cellpadding=0> <tr height=11 width="
+ totalwidth
+"> "
+"<td width=1 bgcolor=#bbbbbb></td> <td width=1 bg"
+"color=#ffffff></td> <td width=1 bgcolor=#bbbbbb><"
+"/td> <td><img src=shao/ml.gif></td><td><img src="
+"shao/separatr.gif width="
+ widewidth
+" height=11></td><td><img"
+" src=shao/mr.gif></td><td><img src=shao/right.gif width"
+"=5></td></tr></table> <!– mine field –> <table"
+" width="
+ totalwidth
+" border=0 cellspacing=0 cellpadding=0> "
+"<tr height="
+ highheight
+"> <td width=1 bgcolor=#bbbbbb></td>"
+" <td width=1 bgcolor=#ffffff></td> <td width=1 b"
+"gcolor=#bbbbbb></td> <td><img src=shao/fielside.gif "
+"width=12 height="
+ highheight
+"></td> <td> <!– game field -"
+"->");
var s = "";
var x, y;
for(y = 0; y < gridy; ++y) {
for(x = 0; x < gridx; ++x) {
s = s + <a href="javascript:gridclick( + y + , + x +);"> +
<img src=" + dir + shao/sqt0.gif" name="grd+y+_+x+" border=0></a>
}
s = s + "<br>";
}
document.write(s);
document.write(<!– end game field –></td><td
+ valign=right><img src="shao/fielside.gif" width=12 heig
+ht=
+ highheight
+></td> <td valign=right><img src="shao/right.gif
+" width=5 height=
+ highheight
+></td></tr></table><!– en
+d mine field –><!– footer –><table width=
+ totalwidth
+ border=0 cellspacing=0 cellpadding=0><tr heigh
+t=12> <td width=1 bgcolor=#bbbbbb></td> <td widt
+h=1 bgcolor=#ffffff></td> <td width=1 bgcolor=#bb
+bbbb></td> <td><img src="shao/bl.gif"></td> <td><img
+src="shao/footer.gif" width=
+ widewidth
+ height=12></td> <td><i
+mg src="shao/br.gif"></td> <td><img src="shao/right.gif" he
+ight=12></td></tr></table><!– bottom –> <ta
+ble width=
+ totalwidth
+ border=0 cellspacing=0 cellpadding=0
+> <tr bgcolor=#bbbbbb height=1> <td width=1 bgco
+lor=#bbbbbb></td><td width=1 bgcolor=#ffffff></t
+d> <td width=1 bgcolor=#bbbbbb></td><td width=
+ tw6
+ bgcolor=#bbbbbb></td><td width=1 bgcolor=#bbb
+bbb></td> <td width=1 bgcolor=#888888></td> <td
+width=1 bgcolor=#000000></td> </tr> <tr height=1
+> <td width=1 bgcolor=#bbbbbb></td> <td width=1
+bgcolor=#888888></td> <td width=1 bgcolor=#888888
+></td> <td bgcolor=#888888></td> <td width=1 bgc
+olor=#888888></td> <td width=1 bgcolor=#888888></
+td> <td width=1 bgcolor=#000000></td> </tr> <tr
+ height=1> <td width=1 bgcolor=#000000></td> <td
+ width=1 bgcolor=#000000></td> <td width=1 bgcolo
+r=#000000></td> <td bgcolor=#000000></td> <td wi
+dth=1 bgcolor=#000000></td> <td width=1 bgcolor=#
+000000></td> <td width=1 bgcolor=#000000></td> <
+/tr></table> </div>);
}
// function to calculate the number of mines adjacent to a grid location
function surrounding(y,x) {
var count = 0;
if (y > 0 && x > 0 && mines[y-1][x-1]) count++;
if (y > 0 && mines[y-1][x]) count++;
if (y > 0 && x < gridx-1 && mines[y-1][x+1]) count++;
if (x > 0 && mines[y][x-1]) count++;
if (x < gridx-1 && mines[y][x+1]) count++;
if (y < gridy-1 && x > 0 && mines[y+1][x-1]) count++;
if (y < gridy-1 && mines[y+1][x]) count++;
if (y < gridy-1 && x < gridx-1 && mines[y+1][x+1]) count++;
return count;
}
// recursive function to roll back the grid when user clicks on a tile
// with no surrounding mines
function rollback(y,x) {
if (y >= 0 && y < gridy && x >=0 && x < gridx) {
if (shown[y][x] != 3) {
var c = surrounding(y,x);
shown[y][x] = 3;
squaresleft–;
document.images["grd"+y+"_"+x].src = dir + "shao/sq"+c+".gif";
if (c == 0) {
rollback(y-1,x-1);
rollback(y-1,x);
rollback(y-1,x+1);
rollback(y,x-1);
rollback(y,x+1);
rollback(y+1,x-1);
rollback(y+1,x);
rollback(y+1,x+1);
         }
      }
   }
}
// function called when player steps on a mine. all mine locations are uncovered
function dead() {
var y, x;
for(y = 0; y < gridy; ++y) {
for(x = 0; x < gridx; ++x) {
if (mines[y][x]) {
if (shown[y][x] != 1) {
document.images["grd"+y+"_"+x].src = dir + "shao/mine.gif";
   }
}
else if (shown[y][x] == 1) {
document.images["grd"+y+"_"+x].src = dir + "shao/nomine.gif";
      }
   }
}
document.images.condition.src = dir + "shao/btndead.gif";
playing = false;
clicked = false;
}
// handler called whenever the grid is clicked
function gridclick(y, x) {
if (playing) {
clicked = true;
if (placeflag) {
if (shown[y][x] < 3) {
var s = shown[y][x];
var change = true;
if (s == 1) {
flagsleft++;
squaresleft++;
}
if (flagsleft == 0 && s == 0) {
change = false;
}
else {
if (s == 2) s = 0;
else s++;
if (s == 1) {
flagsleft–;
squaresleft–;
   }
}
if (change) {
shown[y][x] = s;
document.images["grd"+y+"_"+x].src = dir + "shao/sqt"+s+".gif";
setstatus();
}
if (squaresleft == 0) {
document.images.condition.src = dir + "shao/btncool.gif";
playing = false;
      }
   }
}
// check not flagged as a mine
else if (shown[y][x] != 1) {
if (mines[y][x]) {
document.images["grd"+y+"_"+x].src = dir + "shao/minered.gif";
dead();
}
else  {
rollback(y,x);
         }
      }
   }
}
// start the game
newgame();
//  end –>
</script>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 转贴一个扫雷游戏脚本
分享到: 更多 (0)

相关推荐

  • 暂无文章