Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //Tạo ra 2 picker khác nhau
            AutomatedPicker picker1 = PickerPool.GetPicker();
            AutomatedPicker picker2 = PickerPool.GetPicker();

            //AutomatedPicker picker3 = PickerPool.GetPicker();
            //AutomatedPicker picker4 = PickerPool.GetPicker();
            //AutomatedPicker picker5 = PickerPool.GetPicker();
            //AutomatedPicker picker6 = PickerPool.GetPicker();
            //AutomatedPicker picker7 = PickerPool.GetPicker();
            //AutomatedPicker picker8 = PickerPool.GetPicker();

            //Đặt tên cho 2 picker là Picker 1 và Picker 2
            picker1.Identify("Megatron");
            picker2.Identify("Optimus");

            //Di chuyển 2 picker đến các vị trí khác nhau
            picker1.GoToLocation("Moon");
            picker2.GoToLocation("Earth");

            //yêu cầu 2 picker nhận vật phẩm và chuyển đến vị trí yêu cầu, sau đó trả vật phẩm.
            picker1.Pick("Gun");
            picker2.Pick("Sword");

            picker1.GoToLocation("Earth");
            picker2.GoToLocation("Moon");

            picker1.Drop();
            picker2.Drop();

            //Sau khi đã trả vật phẩm, giải phóng các picker
            PickerPool.ReleasePicker(picker1);
            PickerPool.ReleasePicker(picker2);
        }
Exemplo n.º 2
0
 private static void Reset(AutomatedPicker picker)
 {
     if (picker.Carrying != null)
     {
         picker.Drop();
     }
     picker.GoToLocation("Recharging Location");
 }
Exemplo n.º 3
0
 public static AutomatedPicker GetPicker()
 {
     lock (available)
     {
         if (available.Count > 0)
         {
             AutomatedPicker picker = available[0];
             inUse.Add(picker);
             available.RemoveAt(0);
             return(picker);
         }
         else
         {
             throw new InvalidOperationException("No available picker");
         }
     }
 }
Exemplo n.º 4
0
 public static void ReleasePicker(AutomatedPicker picker)
 {
     Reset(picker);
 }