Exemple #1
0
        /// <inheritdoc />
        public void Run()
        {
            if (!HasSetupRan)
            {
                throw new SetupNotRanException();
            }

            Freighter.Sort(Containers, MinDryContainersToBePlaced, MinValuableContainersToBePlaced, MinReeferContainersToBePlaced);
        }
Exemple #2
0
 /// <summary>
 /// Prints the freighter to the console.
 /// </summary>
 /// <param name="freighter">The freighter to be printed.</param>
 /// <param name="detailed">Determines if the freighter should be printed in detail.</param>
 public static void PrintFreighter(Freighter freighter, bool detailed = false)
 {
     Console.WriteLine();
     Console.WriteLine("D = Dry container");
     Console.WriteLine("R = Reefer container");
     Console.WriteLine("V = Valuable container");
     Console.WriteLine();
     for (int i = 0; i < freighter.ContainerDeck.Height; i++)
     {
         Container[,] containersFromHeight = freighter.ContainerDeck.GetContainersFromHeight(i);
         PrintContainerDeckByHeight(containersFromHeight, i);
         Console.WriteLine();
         if (!detailed)
         {
             continue;
         }
         PrintDetailedContainersByHeight(containersFromHeight, i);
         Console.WriteLine();
     }
 }
Exemple #3
0
        /// <inheritdoc />
        public void Setup()
        {
            Containers = new List <Container>();
            //Freighter = new Freighter(4, 3, 5); // is not allowed to set sail.
            Freighter = new Freighter(6, 5, 5); // is allowed to set sail

            #region Adds
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(6_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(8_000, FreightType.Dry)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Valuable)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));
            //Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Refrigerated)));

            Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(2_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(6_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(5_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(8_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(26_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(20_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Dry)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Valuable)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            Containers.Add(ContainerFactory.Create(new Freight(24_000, FreightType.Refrigerated)));
            #endregion Adds

            DryContainersCount      = Containers.OfType <DryContainer>().Count();
            ValuableContainersCount = Containers.OfType <ValuableContainer>().Count();
            ReeferContainersCount   = Containers.OfType <ReeferContainer>().Count();

            MinDryContainersToBePlaced      = 40;
            MinValuableContainersToBePlaced = 12;
            MinReeferContainersToBePlaced   = 12;

            HasSetupRan = true;
        }