Пример #1
0
        /// <summary>
        /// Процес який відкриває доступ до баку
        /// </summary>
        /// <param name="gas">Пальне</param>
        public override void FillProcess(int gas, GasStation station)
        {
            // перевірка чи це та станція на якій можна заправитись
            // на майбутнє розширення, наприклад вона газова, потрібно дизель чи бензин
            if (!(station is GasStation))
            {
                Console.WriteLine("Дана заправка не підходить для такого транспорту.");
                return;
            }

            // заправка
            tank += gas;
        }
Пример #2
0
 /// <summary>
 ///  Процес який відкриває доступ до баку
 /// </summary>
 /// <param name="gas">Пальне</param>
 public abstract void FillProcess(int gas, GasStation station);
        static void Main()
        {
            // Підтримка Unicode
            Console.OutputEncoding = Encoding.Unicode;

            // створення гаража авто
            Car[] cars = new Car[]
            {
                // http://www.mercedes-benz.kiev.ua/cars/models/gls-class/suv/info/tehnicheskie-harakteristik/modeli.html
                new Car(100, 100)
                {
                    Name  = "Mercedes-Benz",
                    Model = "GLS AMG Внедорожник",
                    Color = ConsoleColor.Gray
                },
                // http://www.mercedes-benz.kiev.ua/cars/models/gla-class/suv/info/tehnicheskie-harakteristiki/modeli.html
                new Car(50, 50)
                {
                    Name  = "Mercedes-Benz",
                    Model = "GLA AMG SUV",
                    Color = ConsoleColor.Gray
                },
                // http://www.mercedes-benz.kiev.ua/cars/models/gle-class/coupe/info/tehnicheskie-harakteristik/modeli.html
                new Car(93, 93)
                {
                    Name  = "Mercedes-Benz",
                    Model = "GLE AMG Купе",
                    Color = ConsoleColor.Gray
                },
                // http://www.mercedes-benz.kiev.ua/cars/models/glc-class/coupe/info/tehnicheskie-harakteristik/modeli.html
                new Car(50, 50)
                {
                    Name  = "Mercedes-Benz",
                    Model = "GLC AMG Купе",
                    Color = ConsoleColor.Gray
                }
            };

            // створення заправочної станції
            GasStation station = new GasStation();

            #region Testing cars
            // прапор, який перевіряє чи не пустий бак хоч в когось
            bool tankNotEmpty;

            // поїздка
            do
            {
                // чи десь закінчився бензин
                tankNotEmpty = true;

                for (int i = 0; i < cars.Length; i++)
                {
                    ShowInfo(cars[i].ToString(), ConsoleColor.Green);
                    cars[i].Move();
                    ShowInfo("\n" + new string('#', 25), ConsoleColor.Blue);
                    if (cars[i].Tank == 0)
                    {
                        tankNotEmpty &= false;
                    }
                }
            } while (tankNotEmpty);

            // скористаємося тією самою змінною tankNotEmpty,
            // але в цілях чи хтось заправився повним баком

            // заправка
            do
            {
                // чи всі заправилися повністю
                tankNotEmpty = true;

                for (int i = 0; i < cars.Length; i++)
                {
                    ShowInfo(cars[i].ToString(), ConsoleColor.Green);
                    station.GoInGasStation(ref cars[i]);
                    ShowInfo("\n" + new string('#', 25), ConsoleColor.Yellow);
                    if (cars[i].Tank < cars[i].MaxVolume)
                    {
                        tankNotEmpty &= false;
                    }
                }
            } while (!tankNotEmpty);
            #endregion

            // repeat
            DoExitOrRepeat();
        }