示例#1
0
        static void Main(string[] args)
        {
            Bucket bucket = new Bucket();

            bucket.Fill(10);
            bucket.Fill(3);

            bucket.Empty();
        }
示例#2
0
        //Wanneer de emmer overstroomd of gevuld wordt met een te grote hoeveelheid moet de emmer kenbaar kunnen maken hoeveel er naast de emmer is gevallen.

        public void Oefening4()
        {
            // bucket vullen met 15 liter?
            int amount = 15;

            Bucket bucket1 = new Bucket(12, 5);
            Bucket bucket2 = new Bucket(10, 0);
            Bucket bucket3 = new Bucket(16, 15);

            // per liter de emmer vullen en controleren of de aan het overstromen is.
            for (int i = 0; i < amount; i++)
            {
                bucket3.Fill(1);
                bucket3.OnOverflowing(bucket3);
            }
            //emmer na het vullen de maximale capaciteit geven.
            bucket3.Full();
        }
示例#3
0
        // Zorg ervoor dat alleen een emmer ook gevuld kan worden met de inhoud van een andere emmer.

        public void Oefening2()
        {
            // 4 liter
            int amount = 4;

            Bucket bucket1 = new Bucket(12, 5);
            Bucket bucket2 = new Bucket(10, 0);
            Bucket bucket3 = new Bucket(16, 15);

            // 4 liter legen in bucket 1.
            bucket1.Empty(amount);

            // bucket 2 met 4 liter vullen.
            for (int i = 0; i < amount; i++)
            {
                bucket2.Fill(1);
            }
        }
示例#4
0
        static void BucketScenario()
        {
            Console.Title = "Bucket Scenario";

            Bucket bucket1 = new Bucket();

            Console.WriteLine("Creating default bucket:");
            Console.WriteLine(bucket1);

            WaitAndClear();

            Console.WriteLine("Attempting to create a bucket that is smaller than 10:");
            try
            {
                Bucket wrongBucket = new Bucket(8);
            }
            catch (ContainerException ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.Message);
                Console.ResetColor();
            }

            WaitAndClear();

            Bucket bucket2 = new Bucket(10, 5);

            Console.WriteLine($"Creating a bucket of size {bucket2.Size} that has {bucket2.Volume} units in it:");
            Console.WriteLine(bucket2);

            WaitAndClear();

            Bucket bucket3 = new Bucket(20, 5);

            Console.WriteLine($"Creating a bucket of size {bucket3.Size} that has {bucket3.Volume} units in it:");
            Console.WriteLine(bucket3);

            WaitAndClear();

            Console.WriteLine($"Adding to the first bucket until it is full.");
            Console.WriteLine($"{bucket1}");
            bucket1.Full += Container_Full;
            while (!bucket1.IsFull)
            {
                //Make sure we only write the "current" bucket1
                Console.CursorTop -= 3;
                Console.CursorLeft = 0;
                //Add 1 to the bucket and print.
                bucket1.Fill(1);
                Console.WriteLine($"{bucket1}");
                Thread.Sleep(500);
            }

            WaitAndClear();

            bucket3.Full += Container_Full;
            Console.WriteLine("Filling with another bucket:");
            Console.WriteLine($"Filling\n\n{bucket3}\n\nWith\n\n{bucket1}\n");
            bucket3.FillWith(bucket1);
            Console.WriteLine($"Filled bucket:\n\n{bucket3}\n\nEmptied bucket:\n\n{bucket1}");

            WaitAndClear();

            Console.WriteLine("Filling while not accepting overflow:");
            bucket3.AcceptOverflow = false;
            Console.WriteLine($"Filling\n\n{bucket3}\n\nWith\n\n{bucket2}\n");
            bucket3.FillWith(bucket2);
            Console.WriteLine($"Filled bucket:\n\n{bucket3}\n\nEmptied bucket:\n\n{bucket2}");

            WaitAndClear();

            Console.WriteLine("Checking how much empty units are left in a bucket:");
            Console.WriteLine($"{bucket2}\nHas {bucket2.Remainder} empty units left");

            WaitAndClear();

            Console.WriteLine("Filling while accepting overflow:");
            bucket3.AcceptOverflow = true;
            Console.WriteLine($"Filling\n\n{bucket3}\n\nWith\n\n{bucket2}\n");
            bucket3.FillWith(bucket2);
            Console.WriteLine($"Filled bucket:\n\n{bucket3}\n\nEmptied bucket:\n\n{bucket2}");

            WaitAndClear();

            Console.WriteLine("Emptying a bucket till it is empty");
            Console.WriteLine(bucket3);
            while (!bucket3.IsEmpty)
            {
                //Make sure we only write the "current" bucket1
                if (bucket3.Volume == 10)
                {
                    Console.CursorTop -= 1;
                    Console.CursorLeft = 0;
                    Console.Write(new string(' ', Console.WindowWidth));
                    Console.CursorTop += 1;
                }
                Console.CursorTop -= 3;
                Console.CursorLeft = 0;
                //Remove 1 from the bucket and print.
                bucket3.Empty(1);
                Console.WriteLine($"{bucket3}");
                Thread.Sleep(500);
            }

            WaitAndClear();

            bucket2.Volume = bucket2.Size;
            Console.WriteLine("Refilling one bucket to full and then emptying it with Empty()");
            Console.WriteLine($"Before:\n{bucket2}");
            bucket2.Empty();
            Console.WriteLine($"After:\n{bucket2}");
        }