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<$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 "
您输啦!
";
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 "
";
?>