警察囚徒过河问题

过河的方式:

package river;

public enum ActionCode {
	
	
	// 一个警察过去
	one_plice_go("one_plice_back"),
	// 一个囚徒过去
	one_prisoner_go("one_prisoner_back"),
	// 两个警察过去
	two_plice_go("two_plice_back"),
	// 两个囚徒过去
	two_prisoner_go("two_prisoner_back"),
	// 一个警察一个囚徒过去
	police_prisoner_go("police_prisoner_back"),
	// 一个警察回来
	one_plice_back("one_plice_go"),
	// 一个囚徒回来
	one_prisoner_back("one_prisoner_go"),
	// 两个警察回来
	two_plice_back("two_plice_go"),
	// 两个囚徒回来
	two_prisoner_back("two_prisoner_go"),
	// 一个警察一个囚徒回来
	police_prisoner_back("police_prisoner_go"),
	//未知状态
	unknown_state("unknown_state");
	
	private String ac;
	
	private ActionCode(String s)
	{
		ac=s;
	}
	
//	是否是互斥的
	public boolean isRepel(ActionCode _ac)
	{
		if(ActionCode.valueOf(ac).equals(_ac))
		{
			return true;
		}else{
			return false;
		}
	}
	
	
	
	@Override
	public String toString() {
		switch (this) {
		case one_plice_go:

			return "一个警察过去";
		case one_prisoner_go:

			return "一个囚徒过去";
		case two_plice_go:

			return "两个警察过去";
		case two_prisoner_go:

			return "两个囚徒过去";
		case police_prisoner_go:

			return "一个警察一个囚徒过去";
		case one_plice_back:

			return "一个警察回来";
		case one_prisoner_back:

			return "一个囚徒回来";
		case two_plice_back:

			return "两个警察回来";
		case two_prisoner_back:

			return "两个囚徒回来";
		case police_prisoner_back:

			return "一个警察一个囚徒回来";
		default:
			break;
		}
		return null;
	};
}
过河的状态:

package river;

public class ActionState implements Cloneable{
	private int police_count;
	private int persioner_count;
	private boolean isHaveship;

	public ActionState(int police_count, int persioner_count, boolean isHaveship) {
		this.police_count = police_count;
		this.persioner_count = persioner_count;
		this.isHaveship = isHaveship;
	}

	public int getPolice_count() {
		return police_count;
	}
	
	public void police_count_down(int down)
	{
		police_count-=down;
	}
	public void police_count_up(int up)
	{
		police_count+=up;
	}
	public void persioner_count_down(int down)
	{
		persioner_count-=down;
	}
	public void persioner_count_up(int up)
	{
		persioner_count+=up;
	}

	public void setPolice_count(int policeCount) {
		police_count = policeCount;
	}

	public int getPersioner_count() {
		return persioner_count;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值