Header

開發日記 - 改為物件導向程式


從表面上來看的話,上星期的改動不是很大,但內裡卻是翻天覆地的改變,幾乎重寫了整個程式碼。我一向以來都以流程式來寫程式,但這遊戲越寫越複雜,上星期發覺再這樣寫下去的話,實在難以維護。過去我是以Array來存取各項資料,例如地方資料會以一個叫Place的Array裝著,第7個地區第13格會裝著該地區的資金,即是Place[7][13],當要存的資料越多,對照哪個號碼存些什麼就花了不少時間,更慘的是錯了並不易發覺,如果想改動,例如13變成士兵數,14是資金,這更是痛苦得不得了。因此,為了便於維護,現在改以Object來存取,資金變成.Money,士兵變成.Soldier,相關的method也能放在該物件下,易讀性提高了不少,不用像以前那樣寫下大量的備註了。

目前,整個遊戲有以下的物件:宮殿畫面、宣政殿畫面、微服畫面、皇帝、國家、中央、地方、官員、妃嬪、子女、建築、事件和戰爭。本來可以將某些物件整合在國家之下,例如一個國家有多個地方,一個地方有多個官員之類,但感覺這樣好像太過複雜,因為國家的地方會因戰事而改變,所以就把他們獨立地分開,用個ID來連繫著就好了。

至於在重寫程式碼時,系統上也作出了少許改變,另外途中發現了不少Bug,相信目前仍有不少未被發現,希望日後能慢慢再改進。

2015-06-08

沒有留言:

張貼留言