贪吃蛇游戏是经典手机游戏,既简单又耐玩。通过控制蛇头方向吃蛋,使得蛇变长,从而获得积分。在诺基亚时代,风靡整个手机界,今天我们来看看另类的,如何使用php来实现贪吃蛇小游戏
废话不多说,代码奉上:
control.php
<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body> <a href="control.php?a=up">上<a/> <?session_start(); echo $_SESSION["count"];?>分<br/><a href="control.php?a=left">左<a/> <a href="control.php?a=right">右<a/><br/> <a href="control.php?a=down">下<a/><? switch($_GET["a"]){case "up";$_SESSION["con"]="up";break;case "down":$_SESSION["con"]="down";break;case "left":$_SESSION["con"]="left";break;case "right":$_SESSION["con"]="right";break;}?></body></html>
main.php
<!DOCTYPE html><html><head><meta charset="utf-9"/><meta http-equiv="refresh" content="0.5"/></head><frameset rows="95,*" border="1" noresize ><frame src="control.php" name="top"/><frame src="./tcs.php" name="menu"/></frameset></html>
tcs.php
<?phpsession_start();$_SESSION["ud"];$_SESSION["lr"];$im = imagecreatetruecolor(300,300);$blue = imagecolorallocate($im,0,0,255);$red = imagecolorallocate($im,255,0,0);$c1 = imagecolorallocate($im,200,200,200);imagefill($im,0,0,$c1);if(!isset($_SESSION["a"])&&!isset($_SESSION["b"])){$_SESSION["a"] =rand(0,290);$_SESSION["b"] =rand(0,290);}if(isset($_SESSION["a"])&&isset($_SESSION["b"])){imagerectangle($im,$_SESSION["a"],$_SESSION["b"],$_SESSION["a"]+10,$_SESSION["b"]+10,$red); }if(abs(($_SESSION["lr"]-$_SESSION["a"]))<=5&&abs($_SESSION["ud"]-$_SESSION["b"])<=5){unset($_SESSION["a"]);unset($_SESSION["b"]);$_SESSION["count"]++;}switch($_SESSION["con"]){case "up";if($_SESSION["ud"]>10)$_SESSION["ud"]-=10;else$_SESSION["ud"]=0;break;case "down":if($_SESSION["ud"]<=280)$_SESSION["ud"]+=10;else$_SESSION["ud"]=290;break;case "left":if($_SESSION["lr"]>10)$_SESSION["lr"]-=10;else$_SESSION["lr"]=0;break;case "right":if($_SESSION["lr"]<=280)$_SESSION["lr"]+=10;else$_SESSION["lr"]=290;break;}for($i=0;$i<=$_SESSION["count"];$i++){switch($_SESSION["con"]){case "up":$_SESSION["udnext"] = $_SESSION["ud"]+10*$i;imagerectangle($im,$_SESSION["lr"],$_SESSION["udnext"],$_SESSION["lr"]+10,$_SESSION["udnext"]+10,$blue);// imagerectangle($im,$_SESSION["lr"],$_SESSION["udtime"][time()-$i],$_SESSION["lr"]+10,$_SESSION["udtime"][time()-$i]+10,$blue);break;case "down":$_SESSION["udnext"] = $_SESSION["ud"]-10*$i;imagerectangle($im,$_SESSION["lr"],$_SESSION["udnext"],$_SESSION["lr"]+10,$_SESSION["udnext"]+10,$blue);// imagerectangle($im,$_SESSION["lr"],$_SESSION["udtime"][time()+$i],$_SESSION["lr"]+10,$_SESSION["udtime"][time()+$i]+10,$blue);break;case "left":$_SESSION["lrnext"] = $_SESSION["lr"]+10*$i;imagerectangle($im,$_SESSION["lrnext"],$_SESSION["ud"],$_SESSION["lrnext"]+10,$_SESSION["ud"]+10,$blue);// imagerectangle($im,$_SESSION["lrtime"][time()-$i],$_SESSION["ud"],$_SESSION["lrtime"][time()-$i]+10,$_SESSION["ud"]+10,$blue);break;case "right":$_SESSION["lrnext"] = $_SESSION["lr"]-10*$i;imagerectangle($im,$_SESSION["lrnext"],$_SESSION["ud"],$_SESSION["lrnext"]+10,$_SESSION["ud"]+10,$blue);// imagerectangle($im,$_SESSION["lrtime"][time()+$i],$_SESSION["ud"],$_SESSION["lrtime"][time()+$i]+10,$_SESSION["ud"]+10,$blue);break;}//imagerectangle($im,$_SESSION["lr"],$_SESSION["ud"],$_SESSION["lr"]+10,$_SESSION["ud"]+10,$blue);}header("Content-Type: image/jpeg");imagejpeg($im);imagedestroy($im);?>