public static int CalculateAmountOfWagons(List <Wagon> train)
        {
            Debug.WriteLine(train.Count);
            int currentIndexOfWagon = RandomValues.ReturnNumberOfStartWagon(train.Count);

            train[currentIndexOfWagon].light.IsTurnedOn = false;
            currentIndexOfWagon = TrainManagement.GetPreviousWagon(train, currentIndexOfWagon);
            train[currentIndexOfWagon].light.IsTurnedOn = true;
            currentIndexOfWagon = TrainManagement.GetPreviousWagon(train, currentIndexOfWagon);

            int counter = 2;

            if (IsStartWagonTurnedOff(train, currentIndexOfWagon, counter))
            {
                return(counter);
            }

            else
            {
                while (!IsStartWagonTurnedOff(train, currentIndexOfWagon, counter))
                {
                    counter++;
                    currentIndexOfWagon = TrainManagement.GetPreviousWagon(train, currentIndexOfWagon);

                    if (!train[currentIndexOfWagon].light.IsTurnedOn)
                    {
                        train[currentIndexOfWagon].light.IsTurnedOn = TrainManagement.SwapLightState(train[currentIndexOfWagon].light.IsTurnedOn);
                    }
                }
                return(counter);
            }
        }
 public static bool IsStartWagonTurnedOff(List <Wagon> train, int numberOfCurrentWagon, int amountSkipWagons)
 {
     numberOfCurrentWagon = TrainManagement.SkipWagonsFromFront(train, numberOfCurrentWagon, amountSkipWagons);
     if (train[numberOfCurrentWagon].light.IsTurnedOn == true)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }