public static void Start() { var tank = new Tank(5000, 45); var amfibia = new Amfibia(2500, 65); var warship = new Warship(30000, 50); var soldiers = GetSoldiers(); var fuelConsumptionTank = tank.SimulateTrip(tank, soldiers); var fuelConsumptionAmfibia = amfibia.SimulateTrip(amfibia, soldiers); var fuelConsumptionWarship = warship.SimulateTrip(warship, soldiers); OptimumVehicle(fuelConsumptionTank, fuelConsumptionAmfibia, fuelConsumptionWarship); }
static void Main(string[] args) { var myTank = new Tank(68000, 70); var myWarship = new Warship(35000, 80); var myAmphibian = new Amphibian(23000, 40); Console.WriteLine("Greetings!\nI see you're in need of " + "troop transport!\n"); do { Console.WriteLine("Please enter the number of soldiers you need " + "to transport:"); var peopleToTransport = 0; while (!int.TryParse(Console.ReadLine(), out peopleToTransport)) { Console.WriteLine("That is not a valid input, please try again:"); } Console.WriteLine("Enter the distance the TANK " + "needs to overcome in kilometers:"); var distanceTank = 0; while (!int.TryParse(Console.ReadLine(), out distanceTank)) { Console.WriteLine("That is not a valid input, please try again:"); } Console.WriteLine("Enter the distance the WARSHIP " + "needs to overcome in kilometers:"); var distanceWarship = 0; while (!int.TryParse(Console.ReadLine(), out distanceWarship)) { Console.WriteLine("That is not a valid input, please try again:"); } var distanceAmphibianByLand = 0; var distanceAmphibianBySea = 0; while (true) { Console.WriteLine("Enter the distance the AMPHIBIAN " + "needs to overcome by SEA in kilometers:"); while (!int.TryParse(Console.ReadLine(), out distanceAmphibianBySea)) { Console.WriteLine("That is not a valid input, please try again:"); } Console.WriteLine("Enter the distance the AMPHIBIAN " + "needs to overcome by LAND in kilometers:"); while (!int.TryParse(Console.ReadLine(), out distanceAmphibianByLand)) { Console.WriteLine("That is not a valid input, please try again:"); } if (distanceAmphibianBySea + distanceAmphibianByLand > distanceTank || distanceAmphibianBySea + distanceAmphibianByLand > distanceWarship) { Console.WriteLine("\n\nThe distance the amphibian has to travel MUST be " + "shorter than the ones the tank and warship have to cross!\n\n"); } else { break; } } var totalDistanceTank = myTank.Move(distanceTank); var totalDistanceWarship = myWarship.Swim(distanceWarship); var totalDistanceAmphibian = myAmphibian.Move(distanceAmphibianByLand) + myAmphibian.Swim(distanceAmphibianBySea); var totalFuelConsumptionTank = myTank.FuelConsumptionTotal (totalDistanceTank, peopleToTransport); var totalFuelConsumptionWarship = myWarship.FuelConsumptionTotal (totalDistanceWarship, peopleToTransport); var totalFuelConsumptionAmphibian = myWarship.FuelConsumptionTotal (totalDistanceAmphibian, peopleToTransport); var bestTransport = Utility.LeastFuelSpent(totalFuelConsumptionTank, totalFuelConsumptionWarship, totalFuelConsumptionAmphibian); Console.WriteLine($"\nThe best option for transport is: {bestTransport}"); switch (bestTransport) { case ("Tank"): Console.WriteLine(myTank.Print(totalDistanceTank, peopleToTransport)); break; case ("Warship"): Console.WriteLine(myWarship.Print(totalDistanceWarship, peopleToTransport)); break; case ("Amphibian"): Console.WriteLine(myAmphibian.Print(totalDistanceAmphibian, peopleToTransport)); break; } Console.WriteLine("\nWould you like to make another shipment?"); Console.WriteLine(" ___________________________"); Console.WriteLine("| |"); Console.WriteLine("|Press Y for Yes |"); Console.WriteLine("|Press anything else for No |"); Console.WriteLine("|___________________________|"); }while (Console.ReadKey().Key == ConsoleKey.Y); }