2016-09-13 65 views
1

本週我的課程正在研究一個名爲「囚徒困境」的實驗室。這個想法是兩個犯人,在單獨的房間裏被質疑,可以選擇彼此合作,也可以選擇缺陷,並將其他人剔除。 我們的工作是寫上去使用該骨架策略:使用外部課程提供的信息:囚徒困境

package specs; 

    public interface Strategy { 
     public void opponentMove(boolean isDefecting); 
     public boolean isDefecting(); 
    } 

的策略,然後通過由其他同學做了一個模擬器上運行。

我的查詢是這樣的:我怎樣才能讓我的策略記住它的最後一步或對手的最後一步。 我看到它的方式,戰略類唯一知道的是它是C或D,它有一個對手,在某個地方,也可以是C或D.

+0

提示:您需要具備此策略界面的具體實施以追蹤此信息。 –

回答

0

這很簡單,在如果使用TitForTat,則兩種方法將成爲lastMove狀態變量的簡單獲取者和設置者。

public class TitForTat implements Strategy { 
    private boolean lastMove; 

    public void opponentMove(boolean isDefecting) { 
    lastMove = isDefecting; 
    } 

    public boolean isDefecting() { 
    return lastMove; 
    } 
} 

我希望你能從這個外推到其他策略。

相關問題