C++版的坦克大战(1)---实现基本设计和j简单思想

来源:互联网 发布:华夏网络中西 编辑:程序博客网 时间:2024/06/15 07:44

最近在学习c++,发现好难学,还在还学会一点。那么,就学以致用一下,打算写个c++简单版的坦克游戏。只所以选择做这个,因为比较简单。

        相信很多人都玩过这个游戏,如果没有玩过的话,可以去问问“度娘”,会找到好多。我们玩游戏比较简单,但是,动起手来写代码总会不知道从何下手,我也很纠结。想来想去,有了点眉目:

         将所有的数据封装到数据类(CData)中

         将所有的算法、检测判断放到引擎类(CEngine)中

         将绘图的放置到绘图(CDraw)中

         将业务逻辑放置到  游戏类(CGame)中

   

 将CData作为基类存在,CEngine、CDraw作为CData的子类,同时作为CGame的基类,由于c++中存在多继承,为了避免出现多继承的二义性,建议使用虚基类实现。

       形成如下的逻辑:

CData

/       \

            /          \

           /              \

      CEngine    CDraw

           \ /

           \       /

              \           /

             CGame


     代码如下:

     CData类

    class CData{    public:CData();~CData();   }
    CEngine    类

 

class CEngine : virtual public CData  {public:CEngine(void);~CEngine(void);}

   CDraw类

class CDraw : virtual public CData{public:CDraw(void);~CDraw(void);}


   CGame类
    

class CGame : virtual public CDraw, virtual public CEngine{public:CControl(void);~CControl(void);}

先这样,后面再接着写


0 0