private void Reiniciarbutton_Click(object sender, EventArgs e)
 {
     this.Parqueos  = new List <Parqueo>();
     this.Vehiculos = new List <Vehiculo>();
     EstadotextBox.Clear();
     IniciarParqueos();
 }
        private void EmpezarSimulacion_Click(object sender, EventArgs e)
        {
            GC.Collect();
            EstadotextBox.Clear();
            int           CantidadCasos = CantidadCasosTextBox.Text.ToInt();
            int           iterador      = 0;
            StringBuilder stb           = new StringBuilder();

            for (int j = 0; j < CantidadCasos; j++)
            {
                GC.Collect();
                if (HayParqueoLibre())
                {
                    if (iterador == Vehiculos.Count() - 1)
                    {
                        iterador = 0;
                    }

                    Vehiculo vehiculo = Vehiculos.ElementAt(iterador);

                    stb.AppendLine("Caso: " + (j + 1));
                    stb.AppendLine("Vehiculo: " + (iterador + 1));
                    stb.AppendLine("\tTomo la calle: " + CalleRandom().Numero);
                    for (int x = 0; x < 4; x++)
                    {
                        GC.Collect();
                        Parqueo parqueo = Parqueos.ElementAt(x);
                        stb.AppendLine($"\t\tPaso al parqueo:{(x + 1)} y estaba {parqueo.Estados.ToString()}");

                        if (parqueo.Estados == Estado.Libre)
                        {
                            stb.AppendLine($"\t\tEntro al parqueo al {x + 1}");
                            Parqueos.ElementAt(x).Estados        = Estado.Ocupado;
                            Vehiculos.ElementAt(iterador).Estado = EstadoVehiculo.Parqueado;
                            Parqueos.ElementAt(x).Vehiculo       = Vehiculos.ElementAt(iterador);
                            break;
                        }
                        else
                        {
                            if (x + 1 == 4)
                            {
                                stb.AppendLine($"\t\tNo encontro parqueo y se fue");
                            }
                            else
                            {
                                stb.AppendLine($"\t\tPaso al siguiente parqueo");
                            }
                        }
                    }
                    iterador++;
                    CambiarEstado();
                }
                else
                {
                    stb.AppendLine("No hay parqueo libre, la simulacion ha terminado");
                    break;
                }
            }
            if (HayParqueoLibre())
            {
                stb.AppendLine("Quedaron libre los parqueos");
                for (int x = 0; x < Parqueos.Count(); x++)
                {
                    if (Parqueos[x].Estados == Estado.Libre || Parqueos[x].Estados == Estado.OcupadoFake)
                    {
                        stb.AppendLine($"{Parqueos.ElementAt(x).Numero}");
                    }
                }
            }
            EstadotextBox.Text = stb.ToString();
            DGV.Columns["Vehiculo"].Visible = true;
        }