PHP的练习

在一个游戏中,有盗贼,猎人,医生,农民,士兵几类人,这些人都有名称、等级,还可以自己介绍自己;
其中,
盗贼可以偷盗。
猎人可以打猎。
农民可以采矿。
盗贼、猎人和农民可以攻击。
农民、医生可以治疗。
士兵可以抵抗盗贼、猎人和农民等的攻击。

还有一个玩家可以控制这些角色。
设计这个系统。

<?php

abstract class Game{
    protected $name;
    protected $dengji;
    protected $xingwei;
    public function __construct($name,$dengji,$xingwei){
        $this ->name=$name;
        $this ->dengji=$dengji;
        $this ->xingwei=$xingwei;
    }
    public  function  instrduce(){
        echo "我是".$this ->name.','."我的等级是".$this ->dengji.'级'.','."能".$this->xingwei;
    }
}

//定义接口开始
interface TouDao{
    function toudao();
}
interface XingWei{
    function xingwei();
}
interface DaLie{
    function dalie();
}
interface CaiKuang{
    function caikuang();
}
interface GongJi{
    function gongji();
}
interface ZhiLiao{
    function zhiliao();
}
//定义接口结束

//盗贼
class DaoZei extends Game implements TouDao,GongJi{
    function toudao(){}
    function gongji(){
        echo ",能进行攻击";
    }
}

//猎人
class LieRen extends Game implements DaLie,GongJi{
    function dalie(){}
    function gongji(){}
}

//农民
class NongMing extends Game implements CaiKuang,GongJi,ZhiLiao{
    function caikuang(){}
    function gongji(){}
    function ZhiLiao(){
        echo ",也能进行治疗";
    }
}

//医生
class YiSheng extends  Game implements ZhiLiao{
    function ZhiLiao(){
    }
}

//士兵
class ShiBin extends Game{
    public function dIKang(){}
}

//玩家
class WanJia extends Game{
    public function  kongZhi(){}
}


$DaoZei =new DaoZei('盗贼','中','偷盗');
$DaoZei ->instrduce();
$DaoZei ->gongji();
echo "<br><br>";

$lieren =new LieRen('猎人','初','打猎');
$lieren ->instrduce();
$DaoZei ->gongji();
echo "<br><br>";

$nongming =new NongMing('农民','初','采矿');
$nongming ->instrduce();
$DaoZei ->gongji();
$nongming ->ZhiLiao();
echo "<br><br>";

$yisheng = new YiSheng('医生','中','治疗');
$yisheng ->instrduce();
echo "<br><br>";

$shibin = new ShiBin('士兵','高','抵抗盗贼、猎人和农民的攻击');
$shibin ->instrduce();
echo "<br><br>";

$wanjia = new WanJia('玩家','特高','控制所有角色');
$wanjia ->instrduce();
echo "<br><br>";

原文地址:https://www.cnblogs.com/lxy1023-/p/7223924.html