我正在製作一個編程遊戲,玩家可以在其中編寫盟友的行爲。玩家爲給定的盟友編寫判定()函數的主體,可以用任何java代碼填寫,但必須返回一個動作。我想給每個盟友一個限制的計算量,因此1)添加更多的實體並不會太慢,2)實體花在計算上的時間反映在遊戲中,所以如果一個盟友花更多的時間「思考」它的行爲會少一些。我的靈感應該是如何工作的,它是每回合給出單位一定數量的字節碼,然後暫停計算,讓程序員在事情發生變化時處理注意事項。暫停/恢復線程中的任意計算
我的問題是我如何可以暫停和恢復執行線程中的決策功能的實體。我理解這種做法的「正確」方法是設置一個標誌,告訴線程暫停並偶爾檢查它,但由於我無法強制播放器在decision()函數中檢查標誌,因此我不知道如何暫停線程。實體只查看世界的固定表示,只需返回一個枚舉值,所以我不認爲他們應該鎖定任何東西,但我希望有一個更好的方法來做到這一點,而不是使用已廢棄的線程暫停方法。我願意改變玩家編寫代碼的方式,但是我仍然想辦法做到這一點,同時仍然隱藏用戶的暫停標誌檢查,而沒有將決策循環寫入混亂和繁瑣。必須有一些方法可以做到這一點,因爲Battlecode可以做到這一點,但我在網上搜索有關如何進行細節的詳細信息。
無論你決定,不要使用'Thread.pause'。 – Jeffrey