php实现贪吃蛇小游戏


Posted in PHP onJuly 26, 2016

贪吃蛇游戏是经典手机游戏,既简单又耐玩。通过控制蛇头方向吃蛋,使得蛇变长,从而获得积分。在诺基亚时代,风靡整个手机界,今天我们来看看另类的,如何使用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

<?php
  session_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);  
?>
PHP 相关文章推荐
PHP 分页原理分析,大家可以看看
Dec 21 PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
PHP APP微信提现接口代码
Sep 30 PHP
Laravel框架中缓存的使用方法分析
Sep 06 PHP
Laravel实现ApiToken认证请求
Oct 14 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 #PHP
php禁用函数设置及查看方法详解
Jul 25 #PHP
Yii2中Restful API原理实例分析
Jul 25 #PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 #PHP
详解PHP实现定时任务的五种方法
Jul 25 #PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 #PHP
PHP中session跨子域的三种实现方法
Jul 25 #PHP
You might like
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
初学JavaScript第二章
2008/09/30 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
vue实现登录功能
2020/12/31 Vue.js
Python中的True,False条件判断实例分析
2015/01/12 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Django中URL的参数传递的实现
2019/08/04 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
Python如何输出百分比
2020/07/31 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
顺丰快递Java软件工程师面试题
2015/07/31 面试题
请假条标准格式规范
2014/04/10 职场文书
五好关工委申报材料
2014/05/31 职场文书
年度评优评先方案
2014/06/03 职场文书
2014年居委会工作总结
2014/12/09 职场文书
健康证明
2015/06/19 职场文书
2016年校长新年寄语
2015/08/17 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python