コード例 #1
0
 public string getHistoryAtMoment(int index, KranModel kran)
 {
     if (kran.History.Count != 0 && index <= kran.History.Count)
     {
         return(kran.History.ElementAt(index).ToString());
     }
     throw new IndexOutOfRangeException("Too big");
 }
コード例 #2
0
        public void liftWeight(uint weight, KranModel kran)
        {
            if (!kran.Power)
            {
                throw new NotTurnedOnException("turn me on");
            }

            if (weight <= kran.MaxWeight)
            {
                kran.CurrentWeight += weight;
                anglecount          = 0;
                kran.History.Enqueue(new state(kran.Angle, kran.CurrentWeight));
            }
            else
            {
                throw new HeavyCargoException("more than 200 kg");
            }
        }
コード例 #3
0
        public void turnAround(bool clockwise, KranModel kran)
        {
            if (!kran.Power)
            {
                throw new NotTurnedOnException("turn me on");
            }
            if (anglecount == 1)
            {
                throw new TakeCargoException("should take weight first");
            }
            if (clockwise == true)
            {
                if (kran.Angle < angles.west)
                {
                    kran.Angle += 1;
                }
                else
                {
                    kran.Angle = angles.north;
                }
            }
            else
            {
                if (kran.Angle > 0)
                {
                    kran.Angle -= 1;
                }
                else
                {
                    kran.Angle = angles.west;
                }
            }
            anglecount += 1;

            kran.History.Enqueue(new state(kran.Angle, kran.CurrentWeight));
        }
コード例 #4
0
 public string currentState(KranModel kran)
 {
     return(kran.History.Last().ToString());
 }
コード例 #5
0
 public void turnOff(KranModel kran)
 {
     kran.Power = false;
     kran.History.Clear();
 }
コード例 #6
0
 public void turnOn(KranModel kran)
 {
     kran.Power = true;
 }