<?php
/**
* Created by PhpStorm.
* User: fu
* Date: 2017/7/21
* Time: 9:05
*/
/**
* 抽象的角色类,作为模板
* Class JueSe
*/
abstract class JueSe{
/** 角色名字 */
protected $mingZi;
/** 角色等级 */
protected $dengJi;
/** 角色的包裹 */
protected $baoGuo;
/** 角色攻击力 */
protected $gongJiLi;
/** 角色防御力 */
protected $fangYuLi;
/** 角色血量 */
protected $xueLiang;
function __construct($mingZi, $dengJi=0, $baoGuo=10, $gongJiLi=1, $fangYuLi=1, $xueLiang=50){
$this-> mingZi = $mingZi;
$this-> dengJi = $dengJi;
$this-> baoGuo = $baoGuo;
$this-> gongJiLi = $gongJiLi;
$this-> fangYuLi = $fangYuLi;
$this-> xueLiang = $xueLiang;
}
/**
* 角色介绍自己的行为
* @return mixed
*/
public abstract function jieShaoZiJi();
}
/**
* 盗贼的偷盗行为
* Interface ITouDao
*/
interface ITouDao{
function touDao($duiXiang);
}
/**
* 猎人可以打猎
* Interface IDaLie
*/
interface IDaLie{
function daLie($duiXiang);
}
/**
* 农民可以采矿
* Interface ICaiKuang
*/
interface ICaiKuang{
function caiKuang($kuangChang);
}
/**
* 盗贼、猎人和农民可以攻击
* Interface IGongJi
*/
interface IGongJi{
function gongJi($duiXiang);
}
/**
* 农民、医生可以治疗
* Interface IZhiLiao
*/
interface IZhiLiao{
function zhiLiao($jueSe);
}
/**
* 士兵可以抵抗盗贼、猎人和农民等的攻击
* Interface IFangYu
*/
interface IFangYu{
function fangYu($jueSe);
}
/**
* 盗贼类别
* Class DaoZei
*/
class DaoZei extends JueSe implements ITouDao{
function touDao($duiXiang){
echo ‘盗贼可以偷盗。‘;
}
public function jieShaoZiJi(){
echo ‘<br>我的角色是‘.$this->mingZi.‘,等级:‘.$this->dengJi.‘,‘;
$this->touDao(‘‘);
}
}
/**
* 玩家操作类
* Class WanJia
*/
class WanJia{
/** 玩家的姓名 */
private $name;
function __construct($name)
{
$this->name = $name;
}
/**
* 玩家可以控制所有的角色
* @param $jueSe 被控制的角色对象
*/
public function kongZhi($jueSe){
echo ‘我是玩家:‘.$this->name;
$jueSe->jieShaoZiJi();
}
}
$wanJia = new WanJia(‘王子‘);
$jueSe = new DaoZei(‘盗贼‘);
$wanJia->kongZhi($jueSe);