用PHP做的扫雷游戏!!!!

 用PHP做了个扫雷的游戏,可以在这里看一下效果:
 [url]http://240420643.ekedns.com/mine.php[/url]
 
 源代码如下:
 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>扫雷</title>
</head>

<body>
<center><h2>扫雷<h2>(点开的数字表示周围8个格子中有几个地雷)</center>
<?

if($_POST['submit']=="")
{
    $nummine=4;
    $rowsize=5;
    $colsize=5;
    $gernerer=1;
    $reste=$rowsize*$colsize-1;

}
else
{
    $nummine=intval($_POST['nummine']);
    $rowsize=intval($_POST['rowsize']);
    $colsize=intval($_POST['colsize']);
    $gernerer=intval($_POST['gernerer']);
    if(!$_POST['reste'])
    $reste=$rowsize*$colsize-1;
    else
    $reste=$_POST['reste'];
}

if($gernerer==1)
{

    srand((double)microtime()*100000000);
    $time_start=time();
    if(($rowsize<=1)||($colsize<=1)||($nummine==0))
    {
        echo "<p><br><font size=-1 color=red>您的输入有误</font>";
        exit;
    }
    if($nummine>$rowsize*$colsize)
    {
        echo "<p><br><font>地雷数太多!!</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;


    for($row=1;$row<=$rowsize;$row++)
    {
        for($col=1;$col<=$colsize;$col++)
  {
        
            $temp="mine".($row*($colsize+1)+$col);
     $$temp=$_POST["$temp"];
     $mine[$row][$col]=$$temp;
     $temp="decouv".($row*($colsize+1)+$col);
     $$temp=$_POST["$temp"];
     $decouv[$row][$col]=$$temp;
        
     $temp="submit".($row*($colsize+1)+$col);
     $$temp=$_POST["$temp"];
            
     if($$temp=="ok")
     {
            
    if($mine[$row][$col]=="0")
    {
        $decouv[$row][$col]="1";
    }
    else
    {
        $perdu=1;
    }
     }
  }
    }
    if($perdu==1)
    {
        echo "<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))
    {

        echo "<h2>你赢了!!</h2>";
  $time_stop=time();
  $time=$time_stop-$time_start;
  echo "<p><font size=1><i>你的分数:$time</i></font>";
  for($i=1;$i<=$rowsize;$i++)
  {
     for($j=1;$j<=$colsize;$j++)
     {
         $decouv[$i][$j]="1";
     }
  }
    }
$reste=$reste-1;
}
?>
<form method="post" action="mine.php">
<input type="hidden" name="time_start" value="<? echo $time_start;?>">
<input type="hidden" name="nummine" value="<? echo $nummine;?>">
<input type="hidden" name="rowsize" value="<? echo $rowsize;?>">
<input type="hidden" name="colsize" value="<? echo $colsize;?>">
<input type="hidden" name="gernerer" value="0">
<input type="hidden" name="reste" value="<? echo $reste;?>">
<p>
<table border="1" align="center">
<?

for($row=1;$row<=$rowsize;$row++)
{
    echo "<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++;
     }
  }
    
    echo "<td align=center valign=middle width=20 height=20>";

    if($decouv[$row][$col]=="1")
    {
        if($nb==0)
  {
     echo "0";
  }
  else
  {
     if($mine[$row][$col]=="1")
     echo "<font color=red>*</font>";
     else
     echo "$nb";
  }
    }
    else
    {
echo "<input type=submit name=submit".($row*($colsize+1)+$col)." value=ok>";    
    }
echo "<input type=hidden name=submit value=开始>";
echo "<input type=hidden name=mine".($row*($colsize+1)+$col)." value=".$mine[$row][$col].">";
echo "<input type=hidden name=decouv".($row*($colsize+1)+$col)." value=".$decouv[$row][$col].">";

echo "</td>";
}
echo "</tr>";
}

echo "</table>";
echo "</form>";
?>
<form method="post" action="mine.php">
行数:<input type="text" name="rowsize" value="5" size="5"><br>
列数:<input type="text" name="colsize" value="5" size="5"><br>
地雷数:<input type="text" name="nummine" value="4" size="5">
<p>
<input type="submit" name="submit" value="开始">
<input type="hidden" name="gernerer" value="1">
</form>
</body>
</html>


你可能感兴趣的:(PHP,职场,休闲,扫雷)