/// <inheritdoc /> public void Run() { if (!HasSetupRan) { throw new SetupNotRanException(); } Freighter.Sort(Containers, MinDryContainersToBePlaced, MinValuableContainersToBePlaced, MinReeferContainersToBePlaced); }
/// <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(); } }
/// <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; }