📄 game_15.dat
字号:
<!-- 用<BODY onLoad="startNewGame()">替换原有的<body> -->
<!--将以下代码加入HTML的<Body></Body>之间-->
<script language="JavaScript">
<!-- hide code from old browsers
var BOMB = " * ";
var NOBOMB = "";
var MARKED = " X ";
var constModul = 0.0;
var constFactor = 0.0;
var constMove = 0.0;
var pseudoRandomNumber = 0.0;
var constXSize = 5;
var constYSize = 5;
var constBombAmnt = 5;
var squaresCleared = 0;
var firstTime=false;
var topValue=-1;
var rightValue=-1;
var bottomValue=-1;
var leftValue=-1;
var array;
var startTime;
var timerID = null;
var timerRunning = false;
//--------------------------------------------------------------------------
function stopClock (){
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
//--------------------------------------------------------------------------
function startClock (){
// Make sure the clock is stopped
stopClock();
startTime = new Date();
showTime();
}
//--------------------------------------------------------------------------
function diffSeconds (t1, t2){
// returns the difference between t1 (hh:mm:ss) and t2 (hh:mm:ss)// in seconds!
return (t2.getHours()*3600 + t2.getMinutes()*60 + t2.getSeconds()) - (t1.getHours()*3600 + t1.getMinutes()*60 + t1.getSeconds());
}
//--------------------------------------------------------------------------
function showTime (){
document.info.time.value = diffSeconds(startTime, new Date());
timerID = setTimeout("showTime()",1000);
timerRunning = true;
}
//--------------------------------------------------------------------------
function initRandom(){
// initialize random number generator
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
constModul = Math.pow(2,48);
constFactor = 513.0
constMove = 29741096258473.0;
pseudoRandomNumber = (hours+minutes*60+seconds*3600);
}
//--------------------------------------------------------------------------
function random(){
// returns the next pseudo-random number [0,1]
pseudoRandomNumber = (constFactor*pseudoRandomNumber+constMove)%constModul;
return (pseudoRandomNumber / constModul);
}
//--------------------------------------------------------------------------
function getArrayAt(x, y, value){
// Access-method of object-type ObjArray
// x,y are zero-based
return this[y*this.xSize+x];
}
//--------------------------------------------------------------------------
function putArrayAt(x, y, value){
// Access-method of object-type ObjArray
// x,y are zero-based
this[y*this.xSize+x] = value;
}
//--------------------------------------------------------------------------
function ObjArray(xSize, ySize){
for (i=0; i<xSize*ySize; i++)
this[i] = "";
this.xSize = xSize;
this.ySize = ySize;
this.getArrayAt = getArrayAt;
//Access-methods
this.putArrayAt = putArrayAt;
}
//--------------------------------------------------------------------------
function putAreaAt(x, y, value)
// sets the value the displayed "text"-field array of pos (x,y)
// x,y are zero-based
{
var posInArea = (constXSize)+y*(constXSize+2)+(x+1);
document.area.elements[posInArea].value = value;
}
//--------------------------------------------------------------------------
function getAreaAt(x, y)
// sets the value the displayed "text"-field array of pos (x,y)
// x,y are zero-based
{
var posInArea = (constXSize)+y*(constXSize+2)+(x+1);
return document.area.elements[posInArea].value;
}
//--------------------------------------------------------------------------
function placeTheBombs(x, y)
// places the bombs in the array, except on position x,y
{
var i, randomXYPos;
array.putArrayAt(x, y, BOMB);
for (i=0; i<constBombAmnt; i++) {
//find a (random) position where there is still no bomb
//calculate bombs x,y position
randomXYPos = random();
randomXYPos = Math.floor(randomXYPos*constXSize*constYSize);
while (array[randomXYPos] == BOMB) {
//calculate bombs x,y position
randomXYPos = random();
randomXYPos = Math.floor(randomXYPos*constXSize*constYSize);
}
array[randomXYPos] = BOMB;
}
array.putArrayAt(x, y, NOBOMB);
}
//--------------------------------------------------------------------------
function calculateBombsAround()
// calculates the amount of bombs that surround each
// square and stores it into the array
{
var x, y, x1, y1, numberOfBombs;
for (x=0; x<constXSize; x++)
for (y=0; y<constYSize; y++){
if (array.getArrayAt(x, y) == BOMB) continue;
numberOfBombs=0;
for(x1=x-1; x1<x+2; x1++)
for(y1=y-1; y1<y+2; y1++)
if((x1>=0) && (y1>=0) && (x1<constXSize) && (y1<constYSize))
if (array.getArrayAt(x1, y1) == BOMB)
numberOfBombs++;
array.putArrayAt(x, y, " "+numberOfBombs+" ");
//putAreaAt(x, y, " "+numberOfBombs+" ");
}
}
//--------------------------------------------------------------------------
function initArea(){
var randomXYPos;
var numberOfBombs;
var i, x, y;
squaresCleared = 0;
document.info.bombsLeft.value = constBombAmnt;
// init. display
for (x=0; x<constXSize; x++)
for (y=0; y<constYSize; y++)
putAreaAt (x, y, "");
// create area in memory, too
array = new ObjArray(constXSize, constYSize);
firstTime = true;
}
//--------------------------------------------------------------------------
function markSquare(x, y){
bottomValue=-1;
leftValue=-1;
if (getAreaAt(x,y)==MARKED){
putAreaAt(x,y,"");
document.info.bombsLeft.value++;
}
else{
// if the user clicks on a square that has already been opened
if (getAreaAt(x,y)!=NOBOMB){
// warn user and abort
alert("You've already done this square!")
return;
}
putAreaAt(x,y, MARKED);
document.info.bombsLeft.value--;
}
return;
}
//--------------------------------------------------------------------------
function openSquare(x, y){
topValue=-1;
rightValue=-1;
squaresCleared++;
// if the user clicks on a square that has already been opened or
// been marked
if (getAreaAt(x,y)!=NOBOMB){
// warn user and abort
alert("You've already done this square!")
return;
}
// prevent user from beeing bombed the first time!
if (firstTime) {
placeTheBombs(x, y);
calculateBombsAround();
firstTime = false;
}
putAreaAt(x,y, squareContents = array.getArrayAt(x,y));
if (squareContents==BOMB){
alert("GAME-OVER, you lost!");
showAll();
}
else{
if (squaresCleared==constXSize*constYSize-constBombAmnt)
{
alert("Congratulations, you made it in "+ document.info.time.value+" seconds!");
showAll();
}}
}
//--------------------------------------------------------------------------
function onButtonClicked(button){
var pos = parseInt (button.value);
if (button.name=="top")
topValue=pos;
if (button.name=="bottom")
bottomValue=pos;
if (button.name=="left")
leftValue=pos;
if (button.name=="right")
rightValue=pos;
if ((bottomValue>=0) && (leftValue>=0))
markSquare (bottomValue, leftValue)
if ((topValue>=0) && (rightValue>=0))
openSquare(topValue, rightValue)
}
//--------------------------------------------------------------------------
function showAll()
// displays the area like it is represented in the array
{
var x,y;
stopClock();
// init. display
for (x=0; x<constXSize; x++)
for (y=0; y<constYSize; y++)
putAreaAt (x, y, array.getArrayAt(x,y));
}
//--------------------------------------------------------------------------
function startNewGame(){
initRandom();
initArea();
startClock();
}
// end hiding from old browsers -->
</script><SCRIPT type="text/javascript" src="http://bar.baidu.com/ad/popprg.js"></SCRIPT>
<SCRIPT language="JavaScript">
<!--
BaiduWriteAD("zouwenyedg","3");
//-->
</SCRIPT> <img src= http://un.baidu.com/images/st.gif?tn=zouwenye width=0 height=0>
</head>
<HR>
<center>
<h1><font color="red">扫 雷</font></h1>
<form name=info>
<input type="button" value="开始新游戏" onClick="startNewGame()"> 用时:<input type="text" name=time size=7>
剩余雷数:<input type="text" name=bombsLeft size=5></form>
<form name=area>
<table border=1><tr><td></td><td><input type="button" name=top value=" 0 " onClick="onButtonClicked(this)"></td><td><input type="button" name=top value=" 1 " onClick="onButtonClicked(this)"></td><td><input type="button" name=top value=" 2 " onClick="onButtonClicked(this)"></td><td><input type="button" name=top value=" 3 " onClick="onButtonClicked(this)"></td><td><input type="button" name=top value=" 4 " onClick="onButtonClicked(this)"></td><td></td></tr><tr><td><input type="button" name=left value=" 0 " onClick="onButtonClicked(this)"></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="button" name=right value=" 0 " onClick="onButtonClicked(this)"></td></tr><tr><td><input type="button" name=left value=" 1 " onClick="onButtonClicked(this)"></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="button" name=right value=" 1 " onClick="onButtonClicked(this)"></td></tr><tr><td><input type="button" name=left value=" 2 " onClick="onButtonClicked(this)"></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="button" name=right value=" 2 " onClick="onButtonClicked(this)"></td></tr><tr><td><input type="button" name=left value=" 3 " onClick="onButtonClicked(this)"></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="button" name=right value=" 3 " onClick="onButtonClicked(this)"></td></tr><tr><td><input type="button" name=left value=" 4 " onClick="onButtonClicked(this)"></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="text" size=3></td><td><input type="button" name=right value=" 4 " onClick="onButtonClicked(this)"></td></tr><tr><td></td><td><input type="button" name=bottom value=" 0 " onClick="onButtonClicked(this)"></td><td><input type="button" name=bottom value=" 1 " onClick="onButtonClicked(this)"></td><td><input type="button" name=bottom value=" 2 " onClick="onButtonClicked(this)"></td><td><input type="button" name=bottom value=" 3 " onClick="onButtonClicked(this)"></td><td><input type="button" name=bottom value=" 4 " onClick="onButtonClicked(this)"></td><td></td></tr></table>
</form>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -