上一篇FinalFantasy的系統 用到了執行緒的概念 (multithreading)
但是執行緒必須配合其運行的作業系統才能使用
這次的DragonQuest並沒有使用到執行緒
所以其實在DOS底下就可以寫出一個模擬程式了
================================================
Dragon Quest的特點是「真正的回合制」
每一回合,必須在敵我雙方把指令都做完之後,才會發動
然後依據雙方的速度,去決定哪一個角色先動作
有趣的是,只要你下完指令之後,這一回合就是完全看電腦動畫表演給你看了
也就是一旦下完指令之後,你角色這一回合的生死就聽天由命啦!
================================================
在一回合開始的時候,指令選單會開啟,讓你去決定角色要做什麼動作
全部的角色都指定完動作之後,電腦就開始抓取各角色目前的速度值
例如抓到的速度值是
我A | 我B | 我C | 敵A | 敵B |
23 | 16 | 28 | 17 | 30 |
那麼電腦就要創造一個Queue,指定好等會要動作的順序
0 | 1 | 2 | 3 | 4 |
敵B | 我C | 我A | 敵A | 我B |
然後這個排序每一回合可能都不一樣
因為可能有角色使用了加速技能或魔法 使速度變快
================================================
接下來的每個角色所動作...
struct action{ //角色動作的結構
int command;
int use_magic;
int use_skill;
int target;
int use_item;
};
#define X 3 //我方戰鬥角色三人
action our_player[X]; //宣告動作結構
if(our_player[queue[now]].command=="攻擊"){ //排到的角色目前執行的動作是攻擊
attack(our_player[queue[now]].target); //就攻擊他選定的目標
}
..後略
其他的都是細節部分,就不贅述了