public void CambiarEstado() { GC.Collect(); List <Parqueo> parqueosFake = Parqueos; for (int i = 0; i < parqueosFake.Count(); i++) { Parqueo parqueo = parqueosFake.ElementAt(i); if (parqueo.Estados != Estado.Ocupado) { parqueosFake.ElementAt(i).Estados = EstadoRandom(); } } Parqueos = parqueosFake; DGV.Rows.Clear(); foreach (var item in Parqueos) { AddDetalle(item); } }
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; }
public void AddDetalle(Parqueo item) { DGV.Rows.Add(item.Numero, item.Probabilidad, item.Estados.ToString(), item.Vehiculo.Numero); }
static void Main(string[] args) { int opcion = 0; Parqueo solar = new Parqueo("El Solar", new Ubicacion("Camargo ", 71), 3, 10); // DAtos inciales solar.ingresarAuto(Color.rojo, Marca.Fiat, Tipo.camioneta, "2355-TUP"); solar.ingresarAuto(Color.negro, Marca.Toyota, Tipo.auto, "2178-UPX"); solar.ingresarAuto(Color.azul, Marca.Nissan, Tipo.vagonenta, "1138-TAI"); while (opcion != 5) { Console.Clear(); Console.WriteLine("************************************************"); Console.WriteLine(solar); Console.WriteLine("************************************************"); Console.WriteLine("1. Ingresar al Parqueo"); Console.WriteLine("2. Salir del Parqueo"); Console.WriteLine("3. Mostrar Parqueo"); Console.WriteLine("4. Historial de Funcionamiento"); Console.WriteLine("5. Salir"); opcion = int.Parse(Console.ReadLine()); switch (opcion) { case 1: Console.WriteLine("Introduzca Color[rojo,azul,negro,blanco]"); String srtColor = Console.ReadLine(); Color color; Enum.TryParse(srtColor, out color); Console.WriteLine("Introduzca Marca[ Toyota, Nissan, Susuki,Ford, Fiat]"); String srtMarca = Console.ReadLine(); Marca marca; Enum.TryParse(srtMarca, out marca); Console.WriteLine("introduzca Tipo[vagonenta, camioneta,auto,camion,motocicleta]"); String strTipo = Console.ReadLine(); Tipo tipo; Enum.TryParse(strTipo, out tipo); Console.WriteLine("introduzca Placa"); String placa = Console.ReadLine(); Console.WriteLine(solar.ingresarAuto(color, marca, tipo, placa)); Console.ReadKey(); break; case 2: Console.WriteLine("introduzca Placa"); String p = Console.ReadLine(); Console.WriteLine(solar.SalirAuto(p)); Console.ReadKey(); break; case 3: solar.getDatos(); Console.ReadKey(); break; case 4: Console.WriteLine("introduzca el nrode puesto del cual obtener el historial"); int indice = int.Parse(Console.ReadLine()); solar.getHistorial(indice); Console.ReadKey(); break; } } }