PHP教程之php开辟的浅易扫雷游戏
《PHP+MYSQLWEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)我以为用PHP+JS能够计划出挺牛逼的二维网页游戏,固然收集型的网页游戏背景数据的交互可使用java来做数据处置。<?php$init=$_POST["init"];//gamerestart$clickvalue=$_POST["clickvalue"];//minesweeping$checkflag=0;//Victoryordefeat$click_count=0;//clickscountif($init==null&&$clickvalue==null){//initialization$_POST=array();//setPOSTwithaarray$_POST["rows"]=9;//setrows$_POST["cols"]=9;//setcols$_POST["num"]=10;//setnum$_POST["timeshow"]="00:00";//setstarttime$init=true;//setinitialization}$rows=$_POST["rows"];//getrows$cols=$_POST["cols"];//getcols$num=$_POST["num"];//getnum$starttime=$_POST["starttime"];//getstarttimeif($init){//isinitialization$timeshow="00:00";//setstarttime$data=array();//datainitializationfor($i=0;$i<$rows;$i++){//alltherowsfor($j=0;$j<$cols;$j++){//allthecols$data["data".$i."_".$j]=0;//setminewithnull$data["open".$i."_".$j]=0;//setnodewithclose}}$i=0;//resettheindex,andsetthemines(Randomsetting)while($i<$num){//numberofmine$r=rand(0,$rows-1);//rowsindex$c=rand(0,$cols-1);//colsindexif($data["data".$r."_".$c]==0){//ifnotamine$data["data".$r."_".$c]=100;//setthenodewithamine$i++;}}for($i=0;$i<$rows;$i++){//alltherowsfor($j=0;$j<$cols;$j++){//allthecolsif($data["data".$i."_".$j]==100)continue;//isnotamine,setnumberofadjacentmines$cnt=0;if($i-1>=0&&$j-1>=0&&$data["data".($i-1)."_".($j-1)]==100)$cnt++;//upperleftif($i-1>=0&&$data["data".($i-1)."_".$j]==100)$cnt++;//leftif($i-1>=0&&$j+1<$cols&&$data["data".($i-1)."_".($j+1)]==100)$cnt++;//lowerleftif($j-1>=0&&$data["data".$i."_".($j-1)]==100)$cnt++;//upperif($j+1<$cols&&$data["data".$i."_".($j+1)]==100)$cnt++;//lowerif($i+1<$rows&&$j-1>=0&&$data["data".($i+1)."_".($j-1)]==100)$cnt++;//upperrightif($i+1<$rows&&$data["data".($i+1)."_".$j]==100)$cnt++;//rightif($i+1<$rows&&$j+1<$cols&&$data["data".($i+1)."_".($j+1)]==100)$cnt++;//lowerright$data["data".$i."_".$j]=$cnt;//setnumber}}}else{$data=$_POST;//getdataif($data["data".$clickvalue]==100){//checkthevalueofusersclick$checkflag=2;//ifclickonamine,gameoverfor($i=0;$i<$rows;$i++){//alltherowsfor($j=0;$j<$cols;$j++){//allthecols$data["open".$i."_".$j]=1;//setallnodestoopen}}}else{$node=explode("_",$clickvalue);//getthenodeofclickopenNode($node,$node);//setnodestoopenfor($i=0;$i<$rows;$i++){//alltherowsfor($j=0;$j<$cols;$j++){//allthecolsif($data["open".$i."_".$j]==1)$click_count++;//getthenumberofopennode}}if($rows*$cols-$click_count==$num)$checkflag=1;//ifallthenodeisopen,gameclear}}if($checkflag==0&&$click_count==1){//ifgameisstart,timestart$starttime=date("H:i:s");}if($starttime){//Computingtimeanddisplay$now=date("H:i:s");$nowlist=explode(":",$now);$starttimelist=explode(":",$starttime);$time_count=$nowlist*3600+$nowlist*60+$nowlist-($starttimelist*3600+$starttimelist*60+$starttimelist);$min=floor($time_count/60);$sec=$time_count%60;$timeshow=($min>9?$min:"0".$min).":".($sec>9?$sec:"0".$sec);}else{$timeshow="00:00";//ifgameisstop,timestop}functionopenNode($i,$j){//setnodestoopen,ifitiscanopenglobal$rows;//gettherowsglobal$cols;//getthecolsglobal$data;//getthedataif($i<0$i>=$rows$j<0$j>=$cols$data["open".$i."_".$j])return;//itisnotanode,orithasbeenopened$data["open".$i."_".$j]=1;//openthenodeif($data["data".$i."_".$j]>0)return;//needtocontinue?openNode($i-1,$j-1);openNode($i-1,$j);openNode($i-1,$j+1);openNode($i,$j-1);openNode($i,$j+1);openNode($i+1,$j-1);openNode($i+1,$j);openNode($i+1,$j+1);}?><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/><title>扫雷游戏php100.com</title></head><body><formaction=""method="post"><inputtype="hidden"name="starttime"value="<?phpecho$starttime;?>"/><inputtype="hidden"name="clickvalue"/><tablestyle="top:10px;left:0px;z-index:0;margin:10pxauto"border="1px"><tr><tdwidth="100px"align="center"><tablewidth="100%"border="1px"><tr><td>行数:</td><td><inputtype="text"name="rows"value="<?phpecho$rows;?>"size="1"/></td></tr><tr><td>列数</td><td><inputtype="text"name="cols"value="<?phpecho$cols;?>"size="1"/></td></tr><tr><td>雷数:</td><td><inputtype="text"name="num"value="<?phpecho$num;?>"size="1"/></td></tr><tr><tdcolspan="2"align="center"><inputtype="submit"value="从头入手下手"name="init"/></td></tr></table></td><tdwidth="50px"align="center"><fontsize="10px"><?phpecho$checkflag<2?"☺":"☹";?></font></td><tdwidth="100px"align="center"><?phpif($checkflag==1)echo"祝贺,雷全体清失落了!<br/>";elseif($checkflag==2)echo"太挫了,又被雷炸逝世了<br/>";?><inputtype="text"name="timeshow"value="<?phpecho$timeshow;?>"size="4"readonly></td></tr></table><tablestyle="top:155px;left:0px;z-index:0;margin:10pxauto"border="1px"><?phpfor($i=0;$i<$rows;$i++){?><tr><?phpfor($j=0;$j<$cols;$j++){?><tdstyle="width:24px;height:24px;"align="center"><inputtype="hidden"name="open<?phpecho$i."_".$j;?>"value="<?phpecho$data["open".$i."_".$j];?>"><inputtype="hidden"name="data<?phpecho$i."_".$j;?>"value="<?phpecho$data["data".$i."_".$j];?>"><?phpif($data["open".$i."_".$j]){//showthevalueofnode,ifthenodehasbeenopened?><?phpecho$data["data".$i."_".$j]==100?"☀":$data["data".$i."_".$j];?><?php}else{//showabutton,ifthenodehasnotbeenopened?><inputtype="button"value=""onclick="clickNum(<?phpecho$i."_".$j;?>)"style="width:20px;height:20px;"><?php}?></td><?php}?></tr><?php}?></table></form><scripttype="text/javascript">functionclickNum(value){//clickanode<?phpif($checkflag>0)echoreturn;;//ifgameisclearorgameisover?>document.forms.clickvalue.value=value;document.forms.submit();}<?phpif($checkflag==0&&$click_count>0)echosetTimeout("timerun()",1000);;//timerunning?><?phpif($checkflag==1)echoalert("祝贺,雷全体清失落了!php100.com");;?><?phpif($checkflag==2)echoalert("太挫了,又被雷炸逝世了");;?>functiontimerun(){//timerunningvartimelist=document.forms.timeshow.value.split(":");varsec=parseInt(timelist,10)+1;varmin=sec<60?parseInt(timelist,10):(parseInt(timelist,10)+1);document.forms.timeshow.value=(min>9?min:"0"+min)+":"+(sec>9?sec:"0"+sec);setTimeout("timerun()",1000);}</script></body></html>我先解释一下我的学习思路。 本文当是我的笔记啦,遇到的问题随时填充 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
页:
[1]