青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-91  評論-137  文章-0  trackbacks-0

備忘錄模式

前序

相信玩游戲每個人都會,今天就來講講關于游戲進度的保存機制,也就是備忘錄模式。

備忘錄模式

在不破壞封裝性的前提下,捕獲一個對象的內部狀態,兵在該對象之外保存這個狀態。這樣以后就可以將該對象恢復到原先保存的狀態。

實現方式(UML類圖)


實現代碼

#include <stdio.h>

 

// 角色狀態存信息

class RoleStateMemento

{

public:

         int vit;

         int atk;

         int def;

         int level;

         int pass;

        

         RoleStateMemento(int _vit, int _atk, int _def, int _level, int _pass) : vit(_vit), atk(_atk), def(_def), level(_level), pass(_pass){}

};

 

// 游戲角色

class GameRole : public RoleStateMemento

{

public:

         GameRole() : RoleStateMemento(100, 100, 100, 1, 1) {}

        

         RoleStateMemento* SaveState()

         {

                   return new RoleStateMemento(vit, atk, def, level, pass);

         }

        

         void RecoveryState(RoleStateMemento* pMemento)

         {

                   vit = pMemento->vit;

                   atk = pMemento->atk;

                   def = pMemento->def;

                   level = pMemento->level;

                   pass = pMemento->pass;

         }

        

         void Fight()

         {

                   vit -= 20; // 第一關損失了20點血

                   pass++;

                  

                   vit -= 40; // 第二關損失了40點血

                   level++; // 升級了

                   atk++;

                   def++;

                   pass++;

                  

                   vit = 0; // 第三關直接被Boss干掉了

         }

        

         void StateDisplay()

         {

                   printf("當前血量: %d\n", vit);

                   printf("當前攻擊力: %d\n", atk);

                   printf("當前防御力: %d\n", def);

                   printf("當前等級: %d\n", level);

                   printf("當前關卡: %d\n\n", pass);

         }

};

 

// 角色狀態管理者

class RoleStateCaretaker

{

public:

         RoleStateMemento* pMemento;

};

 

int main()

{

         // 大戰Boss

         GameRole* lixiaoyao = new GameRole();

        

         // 保存進度

         RoleStateCaretaker* stateAdmin = new RoleStateCaretaker();

         stateAdmin->pMemento = lixiaoyao->SaveState();

        

         // 大戰Boss時,直接被干掉了

         lixiaoyao->Fight();

         lixiaoyao->StateDisplay();

        

         // 恢復之前的進度

         if(lixiaoyao->vit == 0)

         {

                   lixiaoyao->RecoveryState(stateAdmin->pMemento);

                   lixiaoyao->StateDisplay();

         }

        

         delete stateAdmin->pMemento;

         delete stateAdmin;

         delete lixiaoyao;

         return 0;

}

運行結果



所有文件打包下載

posted on 2011-11-13 23:48 lwch 閱讀(2744) 評論(1)  編輯 收藏 引用 所屬分類: 設計模式

評論:
# re: 備忘錄模式[未登錄] 2011-11-25 10:19 | fox
挺好的,請問博文你這個UML是用啥畫的?  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一级理论片| 亚洲综合社区| 欧美成年人视频网站欧美| 欧美亚洲日本网站| 国产一区导航| 欧美jizz19性欧美| 欧美a级片网| 亚洲在线中文字幕| 午夜亚洲视频| 亚洲第一黄色网| 亚洲精品美女| 国产精品不卡在线| 欧美中文字幕在线| 欧美91大片| 亚洲欧美综合另类中字| 欧美在线视频导航| 亚洲精品孕妇| 亚洲午夜久久久久久尤物| 国内精品久久久| 亚洲日本欧美日韩高观看| 国产麻豆9l精品三级站| 欧美国产日韩a欧美在线观看| 欧美激情第一页xxx| 欧美一区二区在线看| 免费在线成人av| 午夜精品久久99蜜桃的功能介绍| 久久久久久久久伊人| 亚洲一二三区视频在线观看| 久久精品免费看| 亚洲欧美色一区| 欧美成人高清| 久久久久久久999精品视频| 欧美成人免费网站| 久久精品国产99| 欧美午夜久久| 亚洲国产精品成人va在线观看| 国产精品亚洲综合久久| 亚洲国产精品高清久久久| 国产一区二区三区日韩欧美| 99v久久综合狠狠综合久久| 亚洲高清视频在线观看| 午夜久久影院| 亚洲影视在线| 欧美日韩高清在线观看| 美女视频一区免费观看| 国产农村妇女精品一区二区| 最新高清无码专区| 91久久久久| 久久久高清一区二区三区| 欧美一区91| 欧美午夜剧场| 日韩午夜黄色| 99ri日韩精品视频| 女主播福利一区| 老牛影视一区二区三区| 国产午夜精品美女毛片视频| 亚洲天堂久久| 亚洲欧美日韩一区二区| 欧美日韩一区二区三区在线 | 国产日本欧美一区二区三区在线 | 免费日韩精品中文字幕视频在线| 国产精品欧美激情| 一区二区av在线| 一本一本久久| 欧美三级午夜理伦三级中视频| 亚洲激情在线激情| 亚洲精品一区在线| 欧美激情综合色综合啪啪| 亚洲激情欧美| av成人激情| 欧美视频网址| 亚洲一区在线播放| 久久精品噜噜噜成人av农村| 国产欧美一区二区三区久久人妖| 亚洲一区自拍| 久久夜色精品| 亚洲精品精选| 欧美日韩视频| 亚洲欧美日韩综合aⅴ视频| 久久精品成人一区二区三区| 激情成人av在线| 欧美sm视频| 在线亚洲欧美专区二区| 久久不射中文字幕| 一区福利视频| 欧美日韩a区| 亚洲欧美日韩成人| 久久婷婷亚洲| 日韩亚洲欧美一区| 国产精品美女999| 久久成人精品无人区| 亚洲国产精品精华液网站| 在线一区欧美| 国产专区综合网| 欧美激情精品久久久久久变态| 一本色道**综合亚洲精品蜜桃冫| 欧美一级免费视频| 亚洲精品欧美| 国产精品一区二区三区成人| 久久久综合免费视频| 日韩天天综合| 麻豆精品一区二区av白丝在线| 日韩一二三区视频| 国产欧美精品一区二区三区介绍| 久久综合九色欧美综合狠狠| 夜夜爽www精品| 欧美大片一区| 欧美在线影院| 亚洲少妇在线| 亚洲激情社区| 国产视频在线一区二区| 欧美激情区在线播放| 久久不射2019中文字幕| 一区二区三区欧美视频| 欧美大成色www永久网站婷| 亚洲欧美日韩区| 亚洲精品国产精品国自产在线| 国产精品一区二区欧美| 欧美黄污视频| 久久视频在线免费观看| 亚洲欧美日韩国产一区二区三区 | 午夜视频在线观看一区二区三区| 亚洲韩国一区二区三区| 国产欧美视频在线观看| 国产精品s色| 欧美精品乱码久久久久久按摩| 久久大香伊蕉在人线观看热2| 99热免费精品在线观看| 亚洲黄色一区| 亚洲大片一区二区三区| 蜜臀va亚洲va欧美va天堂| 欧美在线高清| 欧美一区二区三区在线播放| 亚洲一二三区精品| 亚洲一区二区视频| 在线亚洲精品福利网址导航| 日韩一本二本av| 99热在这里有精品免费| 亚洲黄色成人久久久| 亚洲国产精品激情在线观看| 国内一区二区三区| 韩国成人精品a∨在线观看| 国产伊人精品| 黄色成人在线观看| 黄色一区三区| 亚洲国产一区二区a毛片| 亚洲高清不卡在线| 亚洲人精品午夜在线观看| 亚洲第一中文字幕| 亚洲国产一区二区三区在线播| 玉米视频成人免费看| 亚洲国产专区校园欧美| 亚洲精品国产精品乱码不99| 日韩视频专区| 午夜精品亚洲一区二区三区嫩草| 亚洲欧美日韩国产精品| 久久er99精品| 欧美成人激情视频| 最新日韩中文字幕| 夜夜嗨av一区二区三区网站四季av | 久久精品国产96久久久香蕉| 久久久精品2019中文字幕神马| 久久久久久国产精品一区| 免费日韩一区二区| 亚洲精品韩国| 亚洲欧美久久久| 久久精品99无色码中文字幕| 嫩模写真一区二区三区三州| 欧美日韩一区二区三区在线观看免| 国产精品第十页| 韩日成人在线| 99在线热播精品免费99热| 性欧美xxxx大乳国产app| 快播亚洲色图| 日韩写真在线| 久久久久久自在自线| 欧美日韩免费观看一区三区| 国产精品揄拍一区二区| 亚洲国产成人在线视频| 亚洲专区一区二区三区| 噜噜爱69成人精品| 99精品黄色片免费大全| 久久久久国产一区二区| 欧美日韩国产电影| 狠狠入ady亚洲精品| 亚洲午夜激情网页| 免费观看成人鲁鲁鲁鲁鲁视频| 99国产精品视频免费观看| 久久精品日韩欧美| 欧美日韩综合精品| 亚洲激情在线激情| 久久精品夜色噜噜亚洲a∨| 亚洲日韩成人| 久久亚洲视频| 国产亚洲精品久久久久久| 亚洲手机成人高清视频| 欧美福利一区| 久久久久久久久蜜桃| 国产欧美在线视频| 亚洲一区二区三区四区在线观看 |