public override bool MoveStaff(FarmersStuff farmersStuff) { if (isOnLeftSide) { if (LeftSideList.Where(arg => arg == farmersStuff).Count() > 0) { LeftSideList.Remove(farmersStuff); RightSideList.Add(farmersStuff); return(true); } return(false); } else { throw new Exception("Farmer is on other side"); } }
public bool DoMove(FarmersStuff farmersStuff) { if (_moveStrategy != null) { if (farmersStuff == FarmersStuff.Farmer) { _moveStrategy.isOnLeftSide = !_moveStrategy.isOnLeftSide; return(true); } if (_moveStrategy.MoveStaff(farmersStuff)) { return(_moveStrategy.AreAllAlive()); } else { return(false); } } else { throw new Exception("Strategy was not defined"); } }
abstract public bool MoveStaff(FarmersStuff farmersStuff);