php实现贪吃蛇小游戏
作者:hebedich 发布时间:2024-05-02 17:16:36
标签:php,贪吃蛇
贪吃蛇游戏是经典手机游戏,既简单又耐玩。通过控制蛇头方向吃蛋,使得蛇变长,从而获得积分。在诺基亚时代,风靡整个手机界,今天我们来看看另类的,如何使用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);
?>


猜你喜欢
- 1.新建一个vs2003的web工程,取名为XMLTest &nbs
- 本文实例讲述了Python面向对象编程之继承与多态。分享给大家供大家参考,具体如下:Python 类的继承在OOP(Object Orien
- Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案。__dict__与dir()的
- k-近邻算法概述简单地说,k近邻算法采用测量不同特征值之间的距离方法进行分类。k-近邻算法优点:精度高、对异常值不敏感、无数据输入假定。缺点
- 在Oracle本地数据库端执行赋权dbuser帐号SQL> grant create database link to dbuser;
- 在Linux系统下获取USB PID&VID是件十分容易的事情,只需要"lsusb"命令就可以了。不过,对于Wi
- 起步在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作。例如,有一个类实例对象foo,它有一个name属性
- 前言字典是 Python 中很重要的数据类型,有很多内置函数需要了解。1.dict.clear清除字典中所有键值对。dict = {'
- 这篇文章主要是用PHP函数实现数字与文字分页,具体实现步骤就不罗嗦了,直接上代码/** * * @param $_sql * @param
- 隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当于没有了。 隐患二:session在php中默认的是以文件
- 本文实例讲述了Python实现PS滤镜的万花筒效果。分享给大家供大家参考,具体如下:这里用 Python 实现 PS 的一种滤镜效果,称为万
- 图形由json格式加载,可以灵活配置。下一步是完善用户的操作,做这个感觉还是蛮有意思的。呵呵。截图:部分源码:<script type
- 1、简介 table_cache是一个非常重要的MySQL性能参数,它在5.1.3之后的版本中叫做table_open_cache。tabl
- 本文实例讲述了Python实现文件按照日期命名的方法。分享给大家供大家参考。具体实现方法如下:这里实现文件按照创建的时期批量重命名的功能#
- 本文实例讲述了Python连接phoenix的方法。分享给大家供大家参考,具体如下:phoenix是由saleforce.com开源的一个项
- Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59
- 自动化测试验证码登陆的三种解决方式1,找开发关闭验证码2,找开发设置万能验证码3,使用第三方接口识别验证–不能100%识别,比自己搭建的oc
- 实例如下所示:import numpy as npW_val, b_val = sess.run([weights_tensor, bias
- []*int是一个指向指针的切片,本质上是切片,只不过切片里面存放的元素是指针;*[]int是一个指向切片的指针,本质上是指针,可以用*来获
- 一、前言 说实话,刚测试ES的时候,我的内心是崩溃的,好多单词都不知道