PHP写的挖金子游戏

类别:编程语言 点击:0 评论:0 推荐:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>FutureTech--getGold</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<META http-equiv="Content-Language" content="zh-cn">
<STYLE type="text/css">
 BODY { FONT-SIZE: 12pt; FONT-FAMILY: "Verdana", "Arial", "Helvetica", "sans-serif" }
 P { FONT-SIZE: 9pt; FONT-FAMILY: "Verdana", "Arial", "Helvetica", "sans-serif" }
 TD { FONT-SIZE: 9pt; FONT-FAMILY: "Verdana", "Arial", "Helvetica", "sans-serif" }
 .CompanyName { FONT-SIZE: 23pt; FONT-FAMILY: "Verdana", "Arial", "Helvetica", "sans-serif" }
 .style1 {
 font-size: 12pt;
 font-weight: bold;
 } .style2 {
 font-family: Arial, Helvetica, sans-serif;
 font-size: 14pt;
 color: #FFFFFF;
 }
</STYLE>
</HEAD>
<BODY bgColor="#ffffff"><center>
<TABLE cellSpacing="0" cellPadding="0" width="75%" border="0">
<TR><TD width="96%" colSpan="2" height="50" bgcolor="#CC9966">
<DIV align="center" class="style1 style2">挖 金 子</DIV>
</TD>
</TR>
</table>
<TABLE cellSpacing="0" cellPadding="0" width="75%" border="0">
<TR><TD bgColor="#ffcc00" height="1"></TD></TR>
<TR><TD colSpan="2" height="12"></TD></TR>
<TR><TD bgColor="#ffcc00" height="2"></TD></TR>
</TABLE>
<?
if ($submit=="") { //如果页面没有提交,即初始化游戏
 $NumGOLD=10;
 $RowSize=7;
 $ColSize=7;
 $generer=1;// $generer变量记录提交否:1表示未提交
}
?>
 <table cellspacing="0" cellpadding="0" width="75%" align="center" border="0">
 <tr>
     <td valign="middle" width="20" height="393"></td>
     <td valign="middle" width="120"><p>游戏规则:</p>
      <p>
<?
echo $RowSize*$ColSize;
?>
个格子里有
<?
echo $NumGOLD; 
?>
个金子,挖到一个金子得5分,挖错扣一分,挖错格子后该格子会显示他相邻格子里的金子个数来提示您继续挖,祝您好运!</p><p>积分榜首:
<?
$fp=fopen("mark.txt","r");
$oldmark=fgets($fp,5);
echo $oldmark;
fclose($fp);
?>
</p>

<p><br>

 </p></td>
              <td valign="middle" width="20">&nbsp;</td>
              <td valign="top" width="10" height="393" bgcolor="#0099FF"> </td>
              <td  align="center"  valign="middle" width="424">
              
<?
if ($generer==1) // 第一次打开页面或重新生成时的处理:
{
  $Mark=0;//记录玩家分数
  $Getgold=0;//记录玩家挖到的金子
  srand((double)microtime()*100000000); //播下随机数种子
  $time_start=time(); //设置游戏开始时间
  for ($Row=1;$Row<=$RowSize;$Row++)
  {
   for ($Col=1;$Col<=$ColSize;$Col++)
   {
    $GOLD[$Row][$Col]="0"; //把所有的格子设为不是金子
    $Decouv[$Row][$Col]="0"; //把所有格子记录没有点击过
   }
  }
  $index=0;//金子个数记录标志数
  while ($index<$NumGOLD)
  {
   $Row=rand(1,$RowSize);
   $Col=rand(1,$ColSize); //得到一个随机产生的行数,列数
   if ($GOLD[$Row][$Col]=="0")//如果该随机格子没有金子则设置为有金子
   {
    $GOLD[$Row][$Col]="1";
    $index++;
   }
  }
}
else //点了一个格子后的处理:
{
 for ($Row=1;$Row<=$RowSize;$Row++)
 {
   for ($Col=1;$Col<=$ColSize;$Col++)
   {
    //根据得到的上次提交数据判断结果,如其中
    $temp="GOLD".($Row*($ColSize+1)+$Col);
    $GOLD[$Row][$Col]=$$temp;
    $temp="Decouv".($Row*($ColSize+1)+$Col);
    $Decouv[$Row][$Col]=$$temp;
    $temp="submit".($Row*($ColSize+1)+$Col);
    if ($$temp=="ok") //当前的格子是刚刚点击,做是否中金子判断
    {
     if ($GOLD[$Row][$Col]=="0")
     {
      $Decouv[$Row][$Col]="1";
      $Mark=$Mark-1;
     }
     else
     {
      $perdu=1;
      $Mark=$Mark+5;
      $Getgold=$Getgold+1;
      $Decouv[$Row][$Col]="1";
     }
    }
  }
 }
 if ($Getgold==$NumGOLD)
 //如果没有点的跟金子初始值同并且没有输则赢,为了显示金子信息设置每个格子都被点过
 {
  echo "<h2>您挖完了所有的金子!</h2>";
  $time_stop=time();
  $time=$time_stop-$time_start;
  $finalMark=$Mark-(int)($time/60);
  $fp=fopen("mark.txt","rw");
  $oldmark=fgets($fp,5);
  if($oldmark<=$finalMark)
  {
   echo "<font color=red>您的总体积分".$finalMark."打破了积分榜首</font>";
   fclose($fp);
   $fp=fopen("mark.txt","w");
   fwrite($fp, $finalMark);
  }
  else
  {
   echo "<font color=red>您的总体积分".$finalMark."未能打破积分榜首</font>";
  }
  fclose($fp);
  echo "<p>";
  for ($i=1;$i<=$RowSize;$i++)
  {
    for ($j=1;$j<=$ColSize;$j++)
    {
    $Decouv[$i][$j]="1";
   }
  }
 }
}
echo "<form method=get action=\"$PHP_SELF\">";
echo "<input type=hidden name=time_start value=$time_start>"; //游戏开始时间
echo "<input type=hidden name=NumGOLD value=$NumGOLD>"; //金子数目
echo "<input type=hidden name=RowSize value=$RowSize>"; //行数
echo "<input type=hidden name=ColSize value=$ColSize>"; //列数
echo "<input type=hidden name=Mark value=$Mark>"; //分数
echo "<input type=hidden name=Getgold value=$Getgold>"; //已挖金子
echo "<input type=hidden name=generer value=0>";

echo "<p><TABLE cellSpacing=1 cellPadding=0 bgColor=#cc9900 border=0>";
for ($Row=1; $Row<=$RowSize; $Row++)
{
 echo " <TR align=middle bgColor=#ffffcc>";
 for ($Col=1; $Col<=$ColSize; $Col++)
 {
   $nb=0;
   for ($i=-1; $i<=1; $i++)
   {
    for ($j=-1; $j<=1; $j++)
    {
     if ($GOLD[$Row+$i][$Col+$j] == "1")
      {
       $nb++; //计算该格子周围9个格子的金子数
      }
    }
   }
   echo "<td width=30 height=30 align=center valign=middle>";
   if ($Decouv[$Row][$Col]=="1")//如果该格子被点击过,则显示该格子周围9个格子的金子数
   {
    if ($nb==0)
    {
     echo "&nbsp;";
    }
    else
    {
     if ($GOLD[$Row][$Col]=="1")
     {
      echo "<font color='red'>★</font>";
     }
     else
     {
      echo "$nb";
     }
    }
  }
  else //该格子没有点击过显示为按钮
  {
    echo "<input type=hidden name=submit value=ok>";
    echo "<input type=submit name=submit".($Row*($ColSize+1)+$Col)." value=ok>";
    //如果submit7=ok记录下该按钮被点击
  }
  echo "<input type=hidden name=GOLD".($Row*($ColSize+1)+$Col)." value=".$GOLD[$Row][$Col].">";
  //如GOLD7=1表示第一个格为金子
  echo "<input type=hidden name=Decouv".($Row*($ColSize+1)+$Col)." value=".$Decouv[$Row][$Col].">";
  //如Decouv7=1表示第一个格已经点击过
  echo "</td>";
 }
  echo "</tr>";
}
echo "</table>";
echo "</form>";
//POST是发送数据,GET是从URL中得到数据。
?>
              </td>
              <td valign="top" width="10" bgcolor="#ffcc00" height="393"></td>
              <td valign="middle" width="20" height="393"></td>
              <td valign="middle" width="120">总共金子数:<? echo $NumGOLD; ?><br>
                  <br>
                  <br>
        您现在的得分:<? echo $Mark; ?><br>
        <br>
        <br>
        您已经使用时间:<br>
<? $temptime=time()-$time_start;
$tempminu=(int)($temptime/60);
$tempsec=$temptime%60;
echo $tempminu."分".$tempsec."秒"; ?>
        <br>
        <br>
        <br>
        您已经挖到的金子: <? echo $Getgold; ?>
  <br><form method=post><input type=hidden name=generer value=1><input type=submit name=start value="重来"></form></td>
              <td valign="middle" width="20">&nbsp;</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" width="65%" border="0">
 <tr bgcolor="#949231"><td height="2"> </td> </tr>
</table>
 <div align="center"><font face="Arial, Helvetica, sans-serif" color="#3169a5" size="2">Copyright 2004 FutureTech--funy All rights reserved.</font> <br> </div>
<table cellspacing="0" cellpadding="0" width="75%" border="0">
 <tr bgcolor="#006500"><td height="3"></td></tr>
</table></center>
</BODY>
</HTML>
测试页面:http://202.114.99.39/getGold.php

本文地址:http://com.8s8s.com/it/it26795.htm