2016-09-13 62 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; 
    } 
} 

我希望你能从这个外推到其他策略。

相关问题