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 什么是PEAR?(第二篇)
Mar 19 PHP
php 正则 过滤html 的超链接
Jun 02 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP的PDO大对象(LOBs)
Jan 27 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
Laravel实现ORM带条件搜索分页
Oct 24 PHP
thinkphp5实现微信扫码支付
Dec 23 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
无线电的诞生过程
2021/03/01 无线电
PHP中文乱码解决方案
2015/03/05 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
Python与R语言的简要对比
2017/11/14 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
捷克时尚网上商店:OTTO
2018/03/15 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
西北政法大学自主招生自荐信
2014/01/29 职场文书
精彩广告词大全
2014/03/19 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
社区活动策划方案
2014/08/21 职场文书
教师演讲稿开场白
2014/08/25 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android