寫在NoviCe之後
從第三週一直打到第十週的NoviCe總算落下了帷幕,一直想寫些什麼來紀念。
作爲一個從未參加國NOI團隊賽的Coder,這也是我第一次進行團隊協作開發,也明白了多人協作時產生的問題。
第三週的週三開始啓動,由於是C大賽而不是Cpp,因此採用了FOP模式,將函數分文件歸類,大致分爲以下部分:
- map: 獲取地圖信息、獲取尋路產生的路徑,計算兩點間的距離。
- char: 獲取遊戲角色信息,hp、mp、cd、位置等。
- act: 泛型操作,包括移動、攻擊、釋放技能、等待。
- orb: 靈珠信息相關,包括位置、是否可拾取、虛幻時間、所屬等。
- env: 角色環境信息,如最近回復點、出生點,最優出生點等。
以上文件屬於底層,打包併入universal,以供每個策略AI調用。
除此之外还有update(用于数据更新),init(用于初始化),以及四个角色的AI。
第三週完成BFS實現的裸尋路算法(後來發現本AI的精髓便在於尋路算法),然後初步完成自己所負責角色的單挑策略。
第四週,作爲第一名秒完平臺放出的前四關。在等待下一關的焦急過程中也冷卻了我們的開發熱情。此時初步完成木、火、水的單挑策略。
第六週,停工兩週的我們已經被其他隊伍趕超,於是在再三鼓動下終於開始復工。
第七週,開始秒第六關,不吐槽這一關的不平衡性,過關純屬運氣。(其實對戰時水平差距不大的隊伍也就是看運氣XD~)最終依靠按鍵精靈自動提交一小時後RP爆發通過。全局化data、myorder。
第八週,開始攻第七關與第八關,最終版本的AI開始構建,估價模型開始構建。
第九週,第七關的提交由於平臺的未知錯誤未能成功,週末獲取了賽程表(不吐槽了,臨時更換賽程什麼的,殺圖和先後手沒有決定先後的規則什麼的)。
第十週,最終的AI修正,完成封閉區域的處理,增加絕對安全點的處理。全局化charnum。
最終,付出總是有收穫,將一等獎收入囊中。
本次AI的核心是隨機,從角色優先級的隨機到尋路的隨機到行爲的隨機,大部分衝突在時間足夠的時候都能得到基於概率的解決。
七週,四人,完成了2300行代碼,使用了STL,使用了ftp。可惜的是沒用git來進行版本維護。
該項目主頁現在可以公開了~不過wiki部分在第四週之後便沒有維護了囧。在此感謝WJ的竭心開發,感謝CH的戰術指導,感謝濤哥與小飛的打醋~
第一次協作開發就這樣結束,大作業什麼的我來了T_T