<?php
$init
=
$_POST
[
"init"
];
$clickvalue
=
$_POST
[
"clickvalue"
];
$checkflag
= 0;
$click_count
= 0;
if
(
$init
== null &&
$clickvalue
== null){
$_POST
=
array
();
$_POST
[
"rows"
] = 9;
$_POST
[
"cols"
] = 9;
$_POST
[
"num"
] = 10;
$_POST
[
"timeshow"
] =
"00:00"
;
$init
= true;
}
$rows
=
$_POST
[
"rows"
];
$cols
=
$_POST
[
"cols"
];
$num
=
$_POST
[
"num"
];
$starttime
=
$_POST
[
"starttime"
];
if
(
$init
){
$timeshow
=
"00:00"
;
$data
=
array
();
for
(
$i
=0;
$i
<
$rows
;
$i
++){
for
(
$j
=0;
$j
<
$cols
;
$j
++){
$data
[
"data"
.
$i
.
"_"
.
$j
] = 0;
$data
[
"open"
.
$i
.
"_"
.
$j
] = 0;
}
}
$i
=0;
while
(
$i
<
$num
){
$r
= rand(0,
$rows
- 1);
$c
= rand(0,
$cols
- 1);
if
(
$data
[
"data"
.
$r
.
"_"
.
$c
] == 0){
$data
[
"data"
.
$r
.
"_"
.
$c
] = 100;
$i
++;
}
}
for
(
$i
=0;
$i
<
$rows
;
$i
++){
for
(
$j
=0;
$j
<
$cols
;
$j
++){
if
(
$data
[
"data"
.
$i
.
"_"
.
$j
] == 100)
continue
;
$cnt
= 0;
if
(
$i
- 1 >= 0 &&
$j
- 1 >= 0 &&
$data
[
"data"
.(
$i
- 1).
"_"
.(
$j
- 1)] == 100)
$cnt
++;
if
(
$i
- 1 >= 0 &&
$data
[
"data"
.(
$i
- 1).
"_"
.
$j
] == 100)
$cnt
++;
if
(
$i
- 1 >= 0 &&
$j
+ 1 <
$cols
&&
$data
[
"data"
.(
$i
- 1).
"_"
.(
$j
+ 1)] == 100)
$cnt
++;
if
(
$j
- 1 >= 0 &&
$data
[
"data"
.
$i
.
"_"
.(
$j
- 1)] == 100)
$cnt
++;
if
(
$j
+ 1 <
$cols
&&
$data
[
"data"
.
$i
.
"_"
.(
$j
+ 1)] == 100)
$cnt
++;
if
(
$i
+ 1 <
$rows
&&
$j
- 1 >= 0 &&
$data
[
"data"
.(
$i
+ 1).
"_"
.(
$j
- 1)] == 100)
$cnt
++;
if
(
$i
+ 1 <
$rows
&&
$data
[
"data"
.(
$i
+ 1).
"_"
.
$j
] == 100)
$cnt
++;
if
(
$i
+ 1 <
$rows
&&
$j
+ 1 <
$cols
&&
$data
[
"data"
.(
$i
+ 1).
"_"
.(
$j
+ 1)] == 100)
$cnt
++;
$data
[
"data"
.
$i
.
"_"
.
$j
] =
$cnt
;
}
}
}
else
{
$data
=
$_POST
;
if
(
$data
[
"data"
.
$clickvalue
] == 100){
$checkflag
= 2;
for
(
$i
=0;
$i
<
$rows
;
$i
++){
for
(
$j
=0;
$j
<
$cols
;
$j
++){
$data
[
"open"
.
$i
.
"_"
.
$j
] = 1;
}
}
}
else
{
$node
=
explode
(
"_"
,
$clickvalue
);
openNode(
$node
[0],
$node
[1]);
for
(
$i
=0;
$i
<
$rows
;
$i
++){
for
(
$j
=0;
$j
<
$cols
;
$j
++){
if
(
$data
[
"open"
.
$i
.
"_"
.
$j
] == 1)
$click_count
++;
}
}
if
(
$rows
*
$cols
-
$click_count
==
$num
)
$checkflag
= 1;
}
}
if
(
$checkflag
== 0 &&
$click_count
== 1){
$starttime
=
date
(
"H:i:s"
);
}
if
(
$starttime
){
$now
=
date
(
"H:i:s"
);
$nowlist
=
explode
(
":"
,
$now
);
$starttimelist
=
explode
(
":"
,
$starttime
);
$time_count
=
$nowlist
[0]*3600+
$nowlist
[1]*60 +
$nowlist
[2] - (
$starttimelist
[0]*3600+
$starttimelist
[1]*60 +
$starttimelist
[2]);
$min
=
floor
(
$time_count
/ 60);
$sec
=
$time_count
% 60;
$timeshow
= (
$min
>9?
$min
:
"0"
.
$min
).
":"
.(
$sec
>9?
$sec
:
"0"
.
$sec
);
}
else
{
$timeshow
=
"00:00"
;
}
function
openNode(
$i
,
$j
){
global
$rows
;
global
$cols
;
global
$data
;
if
(
$i
< 0 ||
$i
>=
$rows
||
$j
< 0 ||
$j
>=
$cols
||
$data
[
"open"
.
$i
.
"_"
.
$j
])
return
;
$data
[
"open"
.
$i
.
"_"
.
$j
] = 1;
if
(
$data
[
"data"
.
$i
.
"_"
.
$j
] > 0)
return
;
openNode(
$i
- 1,
$j
- 1);
openNode(
$i
- 1,
$j
);
openNode(
$i
- 1,
$j
+ 1);
openNode(
$i
,
$j
- 1);
openNode(
$i
,
$j
+ 1);
openNode(
$i
+ 1,
$j
- 1);
openNode(
$i
+ 1,
$j
);
openNode(
$i
+ 1,
$j
+ 1);
}
?>
<html>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
/>
<title>扫雷游戏</title>
</head>
<body>
<form action=
""
method=
"post"
>
<input type=
"hidden"
name=
"starttime"
value=
"<?php echo $starttime;?>"
/>
<input type=
"hidden"
name=
"clickvalue"
/>
<table style=
"top:10px;left:0px;z-index:0;margin:10px auto"
border=
"1px"
>
<tr>
<td width=
"100px"
align=
"center"
>
<table width=
"100%"
border=
"1px"
>
<tr><td>行数:</td><td><input type=
"text"
name=
"rows"
value=
"<?php echo $rows;?>"
size=
"1"
/></td></tr>
<tr><td>列数</td><td><input type=
"text"
name=
"cols"
value=
"<?php echo $cols;?>"
size=
"1"
/></td></tr>
<tr><td>雷数:</td><td><input type=
"text"
name=
"num"
value=
"<?php echo $num;?>"
size=
"1"
/></td></tr>
<tr><td colspan=
"2"
align=
"center"
><input type=
"submit"
value=
"重新开始"
name=
"init"
/></td></tr>
</table>
</td>
<td width=
"50px"
align=
"center"
><font size=
"10px"
><?php
echo
$checkflag
< 2?
"☺"
:
"☹"
;?></font></td>
<td width=
"100px"
align=
"center"
>
<?php
if
(
$checkflag
== 1)
echo
"恭喜,雷全部清掉了!<br />"
;
else
if
(
$checkflag
== 2)
echo
"太挫了,又被雷炸死了<br />"
;
?>
<input type=
"text"
name=
"timeshow"
value=
"<?php echo $timeshow;?>"
size=
"4"
readonly >
</td>
</tr>
</table>
<table style=
"top:155px;left:0px;z-index:0;margin:10px auto"
border=
"1px"
>
<?php
for
(
$i
=0;
$i
<
$rows
;
$i
++){ ?>
<tr>
<?php
for
(
$j
=0;
$j
<
$cols
;
$j
++){ ?>
<td style=
"width:24px;height:24px;"
align=
"center"
>
<input type=
"hidden"
name=
"open<?php echo $i."
_
".$j;?>"
value=
"<?php echo $data["
open
".$i."
_
".$j];?>"
>
<input type=
"hidden"
name=
"data<?php echo $i."
_
".$j;?>"
value=
"<?php echo $data["
data
".$i."
_
".$j];?>"
>
<?php
if
(
$data
[
"open"
.
$i
.
"_"
.
$j
]){
<?php
echo
$data
[
"data"
.
$i
.
"_"
.
$j
]==100?
"☀"
:
$data
[
"data"
.
$i
.
"_"
.
$j
];?>
<?php }
else
{
<input type=
"button"
value=
""
onclick=
"clickNum('<?php echo $i."
_
".$j;?>')"
style=
"width:20px;height:20px;"
>
<?php } ?>
</td>
<?php } ?>
</tr>
<?php } ?>
</table>
</form>
<script type=
"text/javascript"
>
function
clickNum(value){
<?php
if
(
$checkflag
> 0)
echo
'return;'
;
document.forms[0].clickvalue.value = value;
document.forms[0].submit();
}
<?php
if
(
$checkflag
== 0 &&
$click_count
>0)
echo
'setTimeout("timerun()",1000);'
;
<?php
if
(
$checkflag
== 1)
echo
'alert("恭喜,雷全部清掉了!");'
;?>
<?php
if
(
$checkflag
== 2)
echo
'alert("太挫了,又被雷炸死了");'
;?>
function
timerun(){
var
timelist = document.forms[0].timeshow.value.split(
":"
);
var
sec = parseInt(timelist[1],10) + 1;
var
min = sec < 60?parseInt(timelist[0],10):(parseInt(timelist[0],10) + 1);
document.forms[0].timeshow.value = (min>9?min:
"0"
+min)+
":"
+(sec > 9?sec:
"0"
+sec);
setTimeout(
"timerun()"
,1000);
}
</script>
</body>
</html>