php自学笔记四扫雷完成

博主分享了自己自学PHP过程中制作扫雷游戏的经历,详细介绍了游戏的实现过程,包括界面设计、逻辑处理和错误检查。游戏已完成基本功能,虽然存在一些bug,但已能实现扫雷的核心玩法。此外,博主还表示会继续学习PHP、JavaScript和HTML,以优化和完善游戏。
摘要由CSDN通过智能技术生成

关于扫雷上一篇也写了思路与想法,今天我有花了一天的时间把剩下来的内容完成了,也完成相应的效果,虽然还存在比较多的bug但是基本的游戏功能还是实现了的。

作为第一次完全自己设计,编程,美化的界面。也没有借鉴他人的思路完整做下来,这种成就感还是非常强烈,虽然我现在只学了php一个星期,但是之前有点html的基础还算行,也感谢whqet对我的教导。以后我会对这个游戏更加优化。做的更加有模有样。之后我也会继续学习php,学习javascript,学习html。

下图是扫雷:


下文是扫雷代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
.srk{
width:60px;
text-align:center}
#szjm
{
width:800px;
height:30px;}
#cxks,#szjm,#sljm{
margin:0 auto;
text-align:center;
}
#cxks{
}
#sljm{
width:700px;
}
.button,.button_lei,.button_shuzi,.button_kong,.button_lei2
{/**正常**/
margin:0;
width:27px;
height:27px;
padding:5px 0;
/*font-weight:blod;*/
}
.button_lei{/**雷**/
background:url(lei.jpg);
text-indent:-99999px;
color:#F00;
}
.button_lei2{/**雷**/
background:url(lei2.jpg);
text-indent:-99999px;
color:#F00;
}
.button_shuzi {/**数字**/
color:#09F;
}


.button_kong {/**空格**/


}
</style>
</head>
<body>
<!-------------- --- 设置选项--------------------->
<div id="szjm">
<form action="cs_sl.php" method="post">
设置行数目:
<input type="text" id="num_hang" name="num_hang" class="srk" value="<? if($_POST[num_hang]=="") {$_POST[num_hang]=9;} echo $_POST[num_hang];?>"/>
设置列数目:
<input type="text" id="num_lie" name="num_lie" class="srk" value="<? if($_POST[num_lie]=="") {$_POST[num_lie]=9;} echo $_POST[num_lie];?>"/>
设置雷数量:
<input type="text" id="num_lei" name="num_lei" class="srk" value="<? if($_POST[num_lei]=="") {$_POST[num_lei]=10;} echo  $_POST[num_lei];?>"/>
<input type="submit" value="确定"/>
</form>
</div>
  <!-----------------------设置行数与雷数------------------>
  <? 
//输入框雷数,行数,列数限定
if($_POST[num_hang]<9 or $_POST[num_lie]<9 or $_POST[num_lei]<10)
{

if($_POST[num_lei]<10)
{
echo "alert(雷不能小于10个!)";
}
if($_POST[num_hang]<9)
{
echo "行不能小于9!";
}
if($_POST[num_lie]<9)
{
echo "列不能小于9!";
}
exit;
}
if($_POST[num_hang]>24 or $_POST[num_lie]>24 or $_POST[num_lei]>100)
{

if($_POST[num_lei]>100)
{
echo "雷不能大于99个!";
}
if($_POST[num_hang]>24)
{
echo "行不能大于23!";
}
if($_POST[num_lie]>24)
{
echo "列不能大于23!";
}
exit;
}

if($_POST[num_hang]*$_POST[num_lie]<$_POST[num_lei])
{
echo "雷数过多!";
exit;
}
?>
<!----------------------随机产生雷-------------------->
<? 
for($i=0;$i<=$_POST[num_hang]+1;$i++)
   for($j=0;$j<=$_POST[num_lie]+1;$j++)
   {
  $lei[$i][$j]="空";//给先给数组每个都赋值为空
}


 for($i=1;$i<=$_POST[num_lei];$i++)
 {
 $num_rand1=rand(1,$_POST[num_hang]);//随机值1
// echo $num_rand1;
      $num_rand2=rand(1,$_POST[num_lie]);//随机值2
//  echo $num_rand2." ";
if($lei[$num_rand1][$num_rand2]=="雷")//如果是该数值是雷重新随机一次
{
$i--;
}
else
{
$lei[$num_rand1][$num_rand2]="雷";//给某个数值赋值雷
}
 




for($j=1;$j<=$_POST[num_hang];$j++)
{

for($k=1;$k<=$_POST[num_lie];$k++)//判断某个空 旁边有多少个雷,赋予值
{$i=0;
if($lei[$j][$k]=="雷")
continue;
if($lei[$j-1][$k]=="雷")
$i++;
if($lei[$j-1][$k-1]=="雷")
$i++;
if($lei[$j][$k-1]=="雷")
$i++;
    if($lei[$j+1][$k]=="雷")
$i++;
    if($lei[$j+1][$k+1]=="雷")
$i++;
if($lei[$j][$k+1]=="雷")
$i++;
    if($lei[$j-1][$k+1]=="雷")
$i++;
if($lei[$j+1][$k-1]=="雷")
$i++;
$lei[$j][$k]=$i." ";
}
}
/*************************测试数据**********************************


$i=0;
for($j=0;$j<=$_POST[num_hang]+1;$j++)
{
for($k=0;$k<=$_POST[num_lie]+1;$k++

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值