用php写类似microsoft的挖地雷游戏
2024年02月26日
<?//PHPMINE v1.0
//来源http://www.phpvault.com
//是根据microsoft的挖地雷游戏编写
//这是一款自由软件,可以自由修改及应用
//如果发现这款的作用可发信mathias phpvault.com
//advance汉化
print"<html>";
print"<head>";
print"<title>PHPVault's PHPMine v1.0</title>";
print"</head>";
print"<body><center>";
print"<font size=4 face=Verdana><b>PHPMine v1.0</b>";
if($submit==""){
$NumMine=4;
$RowSize=5;
$ColSize=5;
$generer=1;
}
if($generer==1){
srand((double)microtime()*100000000);
$time_start=time();
//判断输入的数值是否正确
if(($RowSize<=1)||($ColSize<=1)||($NumMine==0)){
print"<p><br><font size=-1 color=red>行数,列数或地雷数输入错误!!</font>";
exit;
}
if($NumMine>$RowSize*$ColSize){
print"<p><br><font size=-1 color=red>地雷数太多!</font>";
exit;
}
//初始化
for($Row=1;$Row<=$RowSize;$Row++){
for($Col=1;$Col<=$ColSize;$Col++){
$Mine[$Row][$Col]="0";
$Decouv[$Row][$Col]="0";
}
}
$index=0;
while($index<$NumMine){
$Row=rand(1,$RowSize);
$Col=rand(1,$ColSize);
if($Mine[$Row][$Col]=="0"){
$Mine[$Row][$Col]="1";
$index++;
}
}
}else{
$perdu=0;
$reste=$RowSize*$ColSize;
for($Row=1;$Row<=$RowSize;$Row++){
for($Col=1;$Col<=$ColSize;$Col++){
$temp="Mine".($Row*($ColSize+1)+$Col);
$Mine[$Row][$Col]=$$temp;
$temp="Decouv".($Row*($ColSize+1)+$Col);
$Decouv[$Row][$Col]=$$temp;
if($Decouv[$Row][$Col]=="1"){$reste=$reste-1;}
$temp="submit".($Row*($ColSize+1)+$Col);
if($$temp=="ok"){
$reste=$reste-1;
if($Mine[$Row][$Col]=="0"){
$Decouv[$Row][$Col]="1";
}else{
$perdu=1;
}
}
}
}
if($perdu==1){
print"<h2><font color=red>您输啦!</font></h2>";
for($i=1;$i<=$RowSize;$i++){
for($j=1;$j<=$ColSize;$j++){
$Decouv[$i][$j]="1";
}
}
}
if(($reste==$NumMine)&&($perdu!=1)){
print"<h2>你赢啦!</h2>";
$time_stop=time();
$time=$time_stop-$time_start;
print"<p><font size=-1><i>您的分数:$time</i></font>";
for($i=1;$i<=$RowSize;$i++){
for($j=1;$j<=$ColSize;$j++){
$Decouv[$i][$j]="1";
}
}
}
}
print"<form method=get action="$PHP_SELF">";
print"<input type=hidden name=time_start value=$time_start>";
print"<input type=hidden name=NumMine value=$NumMine>";
print"<input type=hidden name=RowSize value=$RowSize>";
print"<input type=hidden name=ColSize value=$ColSize>";
print"<input type=hidden name=generer value=0>";
print"<p><table border=1 cellpadding=8>";
for($Row=1;$Row<=$RowSize;$Row++){
print"<tr>";
for($Col=1;$Col<=$ColSize;$Col++){
$nb=0;
for($i=-1;$i<=1;$i++){
for($j=-1;$j<=1;$j++){
if($Mine[$Row+$i][$Col+$j]=="1"){
$nb++;
}
}
}
print"<td width=15 height=15 align=center valign=middle>";
if($Decouv[$Row][$Col]=="1"){
if($nb==0){
print" ";
}else{
if($Mine[$Row][$Col]=="1"){
print"<font color=red>*</font>";
}else{
print"$nb";
}
}
}else{
print"<input type=hidden name=submit value=ok>";
print"<input type=submit name=submit".($Row*($ColSize+1)+$Col)."value=ok>";
}
print"<input type=hidden name=Mine".($Row*($ColSize+1)+$Col)."value=".$Mine[$Row][$Col].">";
print"<input type=hidden name=Decouv".($Row*($ColSize+1)+$Col)."value=".$Decouv[$Row][$Col].">";
print"</td>";
}
print"</tr>";
}
print"</table>";
print"</form>";
?>
<hr>
<form method=post>
行数:
<input type=text name=RowSize value=5 size=2>
<br>
列数:
<input type=text name=ColSize value=5 size=2>
<br>
地雷数:
<input type=text name=NumMine value=4 size=2>
<p>
<input type=submit name=submit value=开始>
<input type=hidden name=generer value=1>
</form>
<p>
<center><font size=-2>(c)2000,<a href="http://www.phpvault.com">PHPVault</a>-All rights reserved<br>
程序开发<a href="mailto:perso kidou.net">Kidou</a></font>
</center>
</body>
</html>