时间:2019-07-31
概述:PHP游戏 挖地雷 扫雷
PHP也可以写扫雷游戏 不信看这里 PHP挖地雷,是根据微软 Windows中的挖地雷游戏编写,虽然外观上没有Winform版的那么漂亮,但基本的功能已经展现了,而且还实现了简单的游戏逻辑,游戏运行效果如下图所示:
print "";
print "
";print "
PHP挖地雷";print "";
print "
print "PHP挖地雷";
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 "
行数,列数或地雷数输入错误!!";
exit;
}
if($NumMine > $RowSize*$ColSize)
{
print "
地雷数太多!";
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
{
$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 "
您输啦!
";for($i=1;$i<=$RowSize;$i++)
{
for($j=1;$j<=$ColSize;$j++)
{
$Decouv[$i][$j]="1";
}
}
}
if(($reste==$NumMine)&&($perdu!=1))
{
print "
你赢啦!
";$time_stop=time();
$time=$time_stop-$time_start;
print "
您的分数: $time";
for ($i=1;$i<=$RowSize;$i++)
{
for($j=1;$j<=$ColSize;$j++)
{
$Decouv[$i][$j]="1";
}
}
}
}
print "
";print "";
print "";
print "";
print "";
print "";
print "
for($Row=1; $Row<=$RowSize; $Row++)
{
print "
";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 "
";if($Decouv[$Row][$Col]=="1")
{
if($nb==0)
{
print " ";
}
else
{
if($Mine[$Row][$Col]=="1")
{
print "*";
}
else
{
print "$nb";
}
}
}
else
{
print "";
print "";
}
print "";
print "";
print "
";}
print "
";}
print "
";print "
";?>
行数 :
列数 :
地雷数 :