接上回:
http://www.csdn.net/Develop/read_article.asp?id=11949
使用prototype模式,用其他队员牵制
对手的注意力,然后带球队员通过个人
技术甩脱对方的防守,单刀赴会得分
(clone)。就像皇马在西甲半程时齐达内
进的那个球。好处是在进攻进行时决定
是否射门或改用其他方法;动态控制
射门;改用不同球员来变化射门方式;
减少进攻需要的队员数;动态换人
改变进攻来改变战术。缺点是:需要
每个队员都有单刀赴会的能力,实现
起来比较困难:)
代码如下:
class 牵制队员:public 队员{
public:
牵制队员(中路*,左路*,右路*);
virtual 两路* 中路包抄 const;
virtual 右路* 左路包抄 const;
virtual 左路* 右路包抄 const;
private:
两路* _中路包抄原型;
右路* _左路包抄原型;
左路* _右路包抄原型;
};
左路* 牵制队员::右路包抄 const{
return _右路包抄原型->左路单刀;
}
class 左路带球队员:public 带球队员{
public:
带球队员();
virtual void 启动();
virtual 左路* 左路单刀 const;
private:
/*...自己特性*/
};
左路* 左路带球队员::左路单刀() const{
return new 左路(*this);
}