我正在用Ruby寫一個簡單的命令行棋盤遊戲。我需要擁有主要的遊戲代碼,然後爲兩個玩家編寫獨立的代碼,這些代碼將由兩個不同的人或團隊編寫。所以主遊戲需要允許不同的玩家在不改變任何代碼的情況下玩遊戲。程序一起工作
我一直在想辦法做到這一點,但是這是我有史以來最大的編程項目,我坦率地說沒有一個好主意呢。
兩個玩家程序是否應該定義主遊戲所調用的方法?我是否應該有一個Player類並且擁有player-Programms子類?我嘗試了一些東西,但它似乎永遠不是我所尋找的東西,或者甚至是體面的設計。
在Ruby(或任何其他語言,因爲這個問題是一般的編程問題)中這樣做的好方法是什麼?
我希望我能夠正確地說出問題。
玩家程序是「需要」的,還是它們是獨立的進程? – Linuxios 2011-12-30 23:11:02
我不知道。我可以有一個標準的文件名,即player1.rb和player2.rb並且需要它們。但我寧願使用別的東西,就像Aasmund Eldhuset所說的那樣。我想有不同的AI,讓他們互相玩。你會建議什麼? – kmikael 2011-12-31 00:26:48
如果玩家需要輪詢一次或兩次玩遊戲,則可以使用lambdas或方法對象。這會更容易一些。或者你可以使用'load(file,true)'方法來製作沙盒代碼。或者你可以將它們作爲單獨的具有較低特權的Ruby線程運行,並通過一些商定的變量來查詢它們。這取決於您的軟件和播放軟件之間的通信數量。 – Linuxios 2011-12-31 00:54:42