當初玩了Dice War這個遊戲, 覺得很有意思,想弄個多人連線對戰的版本,後來又想,乾脆再加入自訂AI,可以讓人和自訂的AI混戰, 應該更有意思,而且自己寫的話也可以自己調整遊戲性,就這樣衝了一週把它寫出來。
JRE 1.4以上
下載後解開,會有3個batch file:
client.bat | 玩家,在setting page輸入server IP後按connect登入 |
---|---|
server_GUI.bat | 圖形介面的server,在setting page設遊戲參數,按"New Game"開始 |
server.bat | console版的server, 依dice_war/config.txt的設定執行 |
圓圈上的數字表示該領土上的骰子數,不同顏色表示不同國家, 每回合可以用你有兩個以上骰子的領土去進攻別人(用滑鼠左鍵點選), 打贏即可得到對方的土地,同時新佔有土地上的兵力是出兵兵力減一, 出兵地點則不論輸贏都只剩下一個,單一領土最多能放8個骰子。
戰鬥的方式是server擲出雙方的骰子,點數總和大者勝,平手算守方勝。
下面的數字是每一國結束進攻時可以增加的兵力,該值為"最大鄰接領土的數目", 啟動Server時可以選擇要電腦自動幫你分配,還是自行分配(用滑鼠左鍵點選)。 輪到進攻的玩家,在他的數字上方會有條白線;數字下方有"me"則表示自己的國家。
遊戲開始後Server_GUI.bat會顯示遊戲情形於"Battle Field",server.bat則沒有顯示介面。 client可在setting page切換玩家,看是要用人玩或是AI玩,自訂AI的說明見下一節。 在"Battle Field"都是用左鍵操作,結束進攻時按下右上角的"End Turn",若遊戲採玩家自行分配新骰子, 這時用左鍵選想要加骰子的領土,右上角的數字表示可以加的數目,若剩下的不想自己分配時, 按下右上角的"End Arr..."(End Arrangement),server會隨機分配剩下的骰子。
這個遊戲用Java寫成,目前只能用Java寫自訂的AI。如果大受好評的話, 或許會考慮改成可用任何語言寫自訂AI(笑)。
1. 在packge dice_war.AI裡新增class(所以會放在dice_war/AI/目錄下)
2. extend AITemplate
滿足上述兩個條件後, client.bat啟動後會自動load進去。
AITemplate和其它相關說明可以看解開目錄下的AI_doc/index.html
歡迎大家多寫些AI用的toolkit來互相交流,合起來寫個class AIToolkit,AITemplate的subclass, 含有多個好用的method供大家使用,讓玩家更能專心在AI策略上。
將近半年沒寫程式,寫完這個project後,無論我是否要走理論研究路線,我想我仍是熱愛程式的。 對照三年半前沒完成的oh5, 陰錯陽差地填補了以前的一個遺憾,回頭看oh5的code, 真是慘不忍睹,看來我這三年沒白過,程式設計多少有些進步。
還有很多想寫的功能,像是map editor,從檔案存取map,顯示遊戲過程(history page),但是我累了。
Back