PHP小汽车类的学习
这个是用一个类来完成的,看到网上都是用两个类来写的,大家来看一下八!由于水平有限,难免有些不足及累赘之处,恳请大家指正!
<?php
class Car
{
//小车的汽油量
var $gas;
//里程记录
var $meter=0;
//车的初始X位置
var $positionX=0;
//车的初始Y位置
var $positionY=0;
//车的末位置X(由GPS自动控制)
var $X=0;
//车的末位置Y
var $Y=0;
//方向
var $dire='e';
//发动机每1公里耗油量,这个车是0.1升\
var $engine=0.1;
// 警报信息
var $warning;
/*小车的初始化。新车出场当然要
1、加满汽油。
2、里程表归零。
3、清除警报信息。
4、设定出发位置。
*/
function Car($gas,$positionX,$positionY)
{
$this->gas= $gas; //加满汽油
$this->meter = 0;
$this->warning =''; //清除警报信息
$this->positionX = $positionX; //设定初始位置x
$this->positionY=$posionY;
}
function getWarning() //返回警报信息
{
return $this->warning;
}
function getGas() //返回汽油表指数
{
return $this->gas;
}
//开动小汽车
function run($km)
{
$this->dis=$km;
$goodRunFlag = true;//是否成功完成任务。
$maxDistance = $this->gas/$this->engine; //小车能够跑的最大距离。
if(($maxDistance)<$km)
{
$this->warning = '没有汽油了!';//设定警告信息,能跑多远就跑多远吧。
$goodRunFlag = false;//但是任务肯定完成不了。
}
else
{
$maxDistance=$km; //没有问题,完成任务以后就可以停下来休息了。
$this->gas -= $maxDistance*$this->engine;//消耗汽油
$this->meter += $km; //增加公里表计数
}
return $goodRunFlag;
}
/*取得x*/
function getX()
{
if($this->dire=='e')
$this->X=$this->positionX+$this->meter;
elseif($this->dire=='w')
$this->X=$this->positionX-$this->meter;
else
$this->X=$this->X;
return $this->X;
}
/*取得y*/
function getY()
{
if($this->dire=='n')
$this->Y=$this->positionY+$this->meter;
elseif($this->dire=='s')
$this->Y=$this->positionY-$this->meter;
else
$this->Y=$this->Y;
return $this->Y;
}
}
$myCar = & new Car(500,$positionX=0,$positionY=0); //我得到一个新的小车,新车初始燃油 500 升,出发地点(0,0)。
$myCar->dire='n'; //给小车设定方向 s:南方 n:北方 w:西方 e:东方。
if($myCar->run(100)) //然后让小车跑100公里,如果顺利完成任务显示燃油量。如果半途而废,我们显示警报信息。
{
print('<br><b>小车一切正常,目前还有燃油:'.$myCar->getGas().'升。已经跑了'.$myCar->meter.'公里</b>');//获得燃油数
}
else
{
print('<br><b>小车出问题了: '.$myCar->getWarning().'</b>');//显示警报信息
}
print('<br>我的小车现在坐标是<br> X:'.$myCar->getX().',Y:'.$myCar->getY());//显示小车的坐标位置
?>