public void moverVehiculos () { for(int x=0; x<vehiculos.Count; x++) { string claveAnterior = Sector.claveHash (vehiculos[x].X, vehiculos[x].Y); vehiculos[x].Conductor.funcionAgente(vehiculos[x], calles, señaleticas, sectores); string claveActual = Sector.claveHash (vehiculos[x].X, vehiculos[x].Y); if (!claveAnterior.Equals (claveActual)) { Sector anterior = (Sector)sectores [claveAnterior]; Sector actual = (Sector)sectores [claveActual]; if (anterior != null) anterior.eliminar (vehiculos [x]); else Console.WriteLine ("Error, el sector no existe en mover vehiculo"); if (actual == null) { actual = new Sector (claveActual); sectores.Add (claveActual, actual); } actual.agregar (vehiculos[x]); } if (!vehiculos[x].Encendido) { eliminarVehiculo (x, vehiculos[x]); x--; } } }
public void agregarVehiculos(Vehiculo elemento) { if (vehiculos.Count < Configuracion.maximoVehiculoMapa) { elemento.Id = generarID (); elemento.calcularCaracteristicas (); vehiculos.Add ((Vehiculo)elemento); string claveHash = Sector.claveHash (elemento.X, elemento.Y); Sector sector = (Sector)sectores[claveHash]; if (sector == null) { sector = new Sector (claveHash); sectores.Add (claveHash, sector); } sector.agregar ((Vehiculo)elemento); totalVehiculos++; } }