Пример #1
0
        public Bus(int id, int tipoBus, Ruta ruta, double siguienteInteraccion, Simulacion sim)
        {
            this.sim  = sim;
            Id        = id;
            TipoBus   = tipoBus;
            this.ruta = ruta;
            switch (tipoBus)
            {
            case 1:
                Capacidad = CAPACIDAD_ARTICULADO;
                break;

            case 2:
                Capacidad = CAPACIDAD_PRE_TRONCAL;
                break;

            case 3:
                Capacidad = CAPACIDAD_ALIMENTADOR;
                break;
            }
            EstacionActual            = 0;
            Pasajeros                 = new Pasajero[Capacidad];
            CapacidadActual           = 0;
            this.siguienteInteraccion = normalizarATiempoSimulacion(siguienteInteraccion);
            datos = new string[1100];
        }
Пример #2
0
        private void CargarBuses()
        {
            System.IO.StringReader lector = new System.IO.StringReader(@"..\\..\\Almacenamiento\Buses\buses.txt");
            String linea = "";

            String[] datosBus = null;
            Ruta     ruta     = null;

            while (true)
            {
                linea = lector.ReadLine();
                if (linea == null || linea.Equals(""))
                {
                    break;
                }
                datosBus = linea.Split(' ');
                ruta     = null;
                for (int j = 0; j < Rutas.Count && ruta == null; j++)
                {
                    if (Rutas[j].GetId() == (Int32.Parse(datosBus[1])) && Rutas[j].GetSentido() == Int32.Parse(datosBus[2]))
                    {
                        ruta = Rutas[j];
                    }
                }

                Bus bus = new Bus(Int32.Parse(datosBus[1]), Int32.Parse(datosBus[3]), ruta, Int32.Parse(datosBus[0]), this);
                bus.setVelocidadValleYPico(velocidadValle, velocidadPico);
                Buses.Add(bus);
                linea    = lector.ReadLine();
                datosBus = linea.Split(' ');
            }
        }
Пример #3
0
        public void AtiendeSimulacion()
        {
            System.IO.StreamReader lector = new System.IO.StreamReader(@"..\\..\\Almacenamiento\Buses\buses.txt");
            String linea = lector.ReadLine();

            for (int i = 1; i < lineaActualBuses; i++)
            {
                linea = lector.ReadLine();
            }

            string[] datosUno = linea.Split(' ');
            String   comp     = datosUno[0];
            int      comp1    = Int32.Parse(comp);

            while (comp1 <= Timer && Buses.Count <= cantidadMaxBuses)
            {
                Ruta ruta = null;
                for (int j = 0; j < Rutas.Count && ruta == null; j++)
                {
                    if (Rutas[j].GetId() == (Int32.Parse(datosUno[1])) && Rutas[j].GetSentido() == Int32.Parse(datosUno[2]))
                    {
                        ruta = Rutas[j];
                    }
                    lineaActualBuses++;
                }

                Bus bus = new Bus(Int32.Parse(datosUno[1]), Int32.Parse(datosUno[3]), ruta, Int32.Parse(datosUno[0]), this);
                bus.setVelocidadValleYPico(velocidadValle, velocidadPico);
                Buses.Add(bus);
                linea    = lector.ReadLine();
                datosUno = linea.Split(' ');
                comp     = datosUno[0];
            }
        }
Пример #4
0
        public void CargarRutas(List <LineStop> paradas, List <Line> ruts)
        {
            Estacion[] esta = Estaciones.DarVertices();


            Ruta auxRut      = null;
            int  tempStopId  = 0;
            int  estacionNum = 0;
            int  auxPa       = 0;
            int  auxIdCola   = 0;

            int[] auxParada = null;

            for (int i = 0; i < ruts.Count; i++)
            {
                for (int k = 0; k < 2; k++)
                {
                    auxRut = new Ruta(ruts[i].LineId, k, ruts[i].ShortName + " " + k, ruts[i].Description);
                    List <int[]> ids = new List <int[]>();
                    for (int j = 0; j < paradas.Count; j++)
                    {
                        if (paradas[j].LineId == auxRut.GetId() && paradas[j].Orientation == auxRut.GetSentido())
                        {
                            tempStopId  = paradas[j].StopId;
                            estacionNum = Utilidades.BuscarIndiceEstacion(esta, tempStopId);
                            if (estacionNum != -1)
                            {
                                auxPa     = esta[estacionNum].DarParadaEnEstacion(tempStopId);
                                auxIdCola = asignarCola(ids, esta[estacionNum].DarParadas()[auxPa].ColasPasajeros, tempStopId);
                                //auxParada = { estacionNum, auxPa, auxIdCola };
                                auxParada    = new int[3];
                                auxParada[0] = estacionNum;
                                auxParada[1] = auxPa;
                                auxParada[2] = auxIdCola;
                                auxRut.agregarParada(auxParada);
                            }
                        }
                    }

                    if (auxRut.DarParadas().Count > 0)
                    {
                        Rutas.Add(auxRut);
                    }
                    Console.WriteLine(auxRut.GetNombre() + " " + auxRut.DarParadas().Count);
                }
            }

            asignarRutas();
        }
Пример #5
0
        public void cargarViajes(List <Trip> via)
        {
            List <Bus> buses = new List <Bus>();

            for (int i = 0; i < via.Count; i++)
            {
                int    linea       = via[i].LineId;
                int    orientacion = via[i].Orientation;
                double momento     = (Int32.Parse(via[i].StartTime)) / 3600;
                Ruta   ruta        = null;
                int    tipo        = 0;

                for (int j = 0; j < Rutas.Count && ruta == null; j++)
                {
                    if (Rutas[j].GetId().Equals(linea) && Rutas[j].GetSentido() == orientacion)
                    {
                        ruta = Rutas[j];
                    }
                }

                if (ruta.GetNombre().StartsWith("T") || ruta.GetNombre().StartsWith("E"))
                {
                    tipo = 1;
                }
                else if (ruta.GetNombre().StartsWith("P"))
                {
                    tipo = 2;
                }
                else
                {
                    tipo = 3;
                }

                Bus nuevo = new Bus(linea, tipo, ruta, momento, this);

                buses.Add(nuevo);
            }

            buses.Sort();

            List <string> buses1 = new List <string>();

            for (int i = 0; i < buses.Count; i++)
            {
                buses1.Add(buses[i].ToString());
            }

            System.IO.File.WriteAllLines(@"..\\..\\Almacenamiento\Buses\buses.txt", buses1);
        }
Пример #6
0
        public void CargarRutas(List<LineStop> paradas, List<Line> ruts)
        {
            Estacion[] esta = Estaciones.DarVertices();
     

            Ruta auxRut = null;
            int tempStopId = 0;
            int estacionNum = 0;
            int auxPa = 0;
            int auxIdCola = 0;
            int[] auxParada = null;
            
            for (int i = 0; i < ruts.Count; i++)
            {
                for (int k = 0; k < 2; k++)
                {
                    auxRut = new Ruta(ruts[i].LineId, k, ruts[i].ShortName + " " + k, ruts[i].Description);
                    List<int[]> ids = new List<int[]>();
                    for (int j = 0; j < paradas.Count; j++)
                    {

                        if (paradas[j].LineId == auxRut.GetId() && paradas[j].Orientation == auxRut.GetSentido())
                        {
                            tempStopId = paradas[j].StopId;
                            estacionNum = Utilidades.BuscarIndiceEstacion(esta, tempStopId);
                            if (estacionNum != -1)
                            {
                                auxPa = esta[estacionNum].DarParadaEnEstacion(tempStopId);
                                auxIdCola = asignarCola(ids, esta[estacionNum].DarParadas()[auxPa].ColasPasajeros, tempStopId);
                                //auxParada = { estacionNum, auxPa, auxIdCola };
                                auxParada = new int[3];
                                auxParada[0] = estacionNum;
                                auxParada[1] = auxPa;
                                auxParada[2] = auxIdCola;
                                auxRut.agregarParada(auxParada);
                            }


                        }
                    }

                    if (auxRut.DarParadas().Count > 0)
                    {

                        Rutas.Add(auxRut);

                    }
                    Console.WriteLine(auxRut.GetNombre() + " " + auxRut.DarParadas().Count);
                }
            }

            asignarRutas();
        }
Пример #7
0
 public Bus(int id, int tipoBus, Ruta ruta, double siguienteInteraccion, Simulacion sim)
 {
     this.sim = sim;
     Id = id;
     TipoBus = tipoBus;
     this.ruta = ruta;
     switch (tipoBus)
     {
         case 1:
             Capacidad = CAPACIDAD_ARTICULADO;
             break;
         case 2:
             Capacidad = CAPACIDAD_PRE_TRONCAL;
             break;
         case 3:
             Capacidad = CAPACIDAD_ALIMENTADOR;
             break;
     }
     EstacionActual = 0;
     Pasajeros = new Pasajero[Capacidad];
     CapacidadActual = 0;
     this.siguienteInteraccion = normalizarATiempoSimulacion(siguienteInteraccion);
     datos = new string[1100];
 }
Пример #8
0
 public void AsignarRutasPosibles(Ruta ruta)
 {
     RutasPosibles.Add(ruta);
 }
Пример #9
0
 public  void AsignarRutasPosibles(Ruta ruta)
 {
     RutasPosibles.Add(ruta);
 }