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");
     }
 }
Exemple #2
0
        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);