Example #1
0
        public void Step()
        {
            // Clean up collision trains
            foreach (var train in CollisionTrains)
            {
                Trains.Remove(train);
            }

            foreach (var train in Trains.OrderBy(train => train.Y).ThenBy(train => train.X))
            {
                if (CollisionTrains.Contains(train))
                {
                    continue;
                }

                train.Step(this);

                foreach (var collideTrain in Trains)
                {
                    if (train.Equals(collideTrain))
                    {
                        continue;
                    }

                    if (train.X == collideTrain.X && train.Y == collideTrain.Y)
                    {
                        CollisionTrains.Add(train);
                        CollisionTrains.Add(collideTrain);
                    }
                }
            }
        }
Example #2
0
        private void OnImport(object sender, EventArgs e)
        {
            string path = "";

            OpenFileDialog open = new OpenFileDialog();

            open.Title            = Lang.InportTrainTitle;
            open.InitialDirectory = Log.GetImporterFolder;
            open.DefaultExt       = ".train";
            open.Filter           = "Train File (*.train)|*.train";

            if (open.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    path = open.FileName;
                    Trains train = Api.ImportTrain(path);
                    if (train != null)
                    {
                        Form1.instance.PrintPanelMessage(Lang.ImportTrainDone + train.Baureihe, false);
                    }
                }
                catch (Exception ex)
                {
                    Form1.instance.PrintPanelMessage(Lang.ImportTrainFailed, true, ex);
                }
            }
            Api.CollectRam();
        }
Example #3
0
 public void ReadFileLineByLine(TrainsDb_200123Context db, FileInfo file)
 {
     using (var sr = new StreamReader(file.FullName, Encoding.GetEncoding("ISO-8859-1")))
     {
         sr.ReadLine();
         if (false)
         {
             using (var sw = new StreamWriter(@"D:\merge.csv", true))
                 sw.Write(sr.ReadToEnd());
             Console.Write(".");
         }
         else
         {
             int    count = 0;
             string line;
             while ((line = sr.ReadLine()) != null)
             {
                 count++;
                 var train = new Trains();                        //Trains.FromCsv(line);
                 //db.Trains.Add(train);
             }
             db.SaveChanges();
             Console.WriteLine($"Importet file: {file.Name}");
             Console.WriteLine($"Records: {count}");
         }
     }
 }
        public static void CustomConversions(VehicleInfo info, long id, TrainCategory trainCategory)
        {
            {
                if (info.m_trailers != null && info.m_trailers.Length > 0) //TODO(earalov): implement take trailers feature
                {
                    switch (id)
                    {
                    default:
                        break;
                    }
                }

                if (!Trains.ReplaceLastCar(id, trainCategory))
                {
                    return;
                }
                if (info.m_trailers != null && info.m_trailers.Length > 0)
                {
                    info.m_trailers[info.m_trailers.Length - 1] = new VehicleInfo.VehicleTrailer()
                    {
                        m_info              = info,
                        m_probability       = 100,
                        m_invertProbability = 100
                    };
                }
            }
        }
        private void MachineLearning()
        {
            var startTime = DateTime.Now;
            var filePath  = Path.Combine(_env.ContentRootPath, "Data");
            var data      = Trains.Select(t => new ModelInput
            {
                PassengerId = t.PassengerId,
                Survived    = t.Survived,
                Pclass      = t.Pclass,
                Name        = t.Name,
                Sex         = t.Sex,
                Age         = t.Age.GetValueOrDefault(),
                SibSp       = t.SibSp,
                Parch       = t.Parch,
                Ticket      = t.Ticket,
                Fare        = t.Fare.GetValueOrDefault(),
                Cabin       = t.Cabin,
                Embarked    = t.Embarked
            });

            EvaluateQualityMessage = ModelBuilder.CreateModel(data, filePath);
            var endTime = DateTime.Now;

            TrainingTime = (endTime - startTime).TotalSeconds;
        }
Example #6
0
        public override string ToString()
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.AppendLine($"Game State: '{GameState}'");
            stringBuilder.AppendLine($"Player with turn: '{Players.First(p => p.Key == PlayerIdWithTurn).Value}'");

            var trainIndex = 1;

            PlayerTrains
            .ToList()
            .ForEach(pt =>
            {
                var train = Trains.First(t => t.Key == pt.Value);
                stringBuilder.AppendLine("");
                stringBuilder.AppendLine($"Player: '{Players.First(p => p.Key == pt.Key).Value}'");
                stringBuilder.AppendLine($"train Idx: '{trainIndex}', train id: '{pt.Value}', train state: '{train.Value.Item1}'");
                stringBuilder.AppendLine(string.Join(",", train.Value.Item2.Reverse()));
                trainIndex++;
            });

            stringBuilder.AppendLine("");
            stringBuilder.AppendLine($"Mexican train");
            stringBuilder.AppendLine($"Idx: '{trainIndex}'  id: '{MexicanTrain.Key}'");
            stringBuilder.AppendLine(string.Join(",", MexicanTrain.Value.Reverse()));

            stringBuilder.AppendLine("");
            stringBuilder.AppendLine("Hand");
            stringBuilder
            .AppendLine(
                string.Join(", ", Hand.Select((t, i) => $"{i + 1}: {t} {t.Id}")));

            return(stringBuilder.ToString());
        }
Example #7
0
        public virtual void RemoveTrainAt(int index)
        {
            Contract.Requires <ArgumentOutOfRangeException>(index >= 0 && index < Trains.Count());

            Contract.Assume(index < Trains.Count());

            this._trains.RemoveAt(index);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Trains trains = db.Trains.Find(id);

            db.Trains.Remove(trains);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #9
0
        private async void CreateTrains()
        {
            for (int i = 0; i < Random.Next(4, 7); i++)
            {
                Trains.Add(await CreateRandomTrain());
            }

            this.ModifyTrain(null, EventArgs.Empty);
        }
        public void Add()
        {
            TrainsController controller = new TrainsController();
            ViewResult       result     = controller.Create() as ViewResult;
            Trains           trains     = new Trains {
                Id = 1, SeriaPociągu = "45WE", NumerPociągu = "001", Stacja = "KMKOL Warszawa Grochów", Rewizja = "P1: 30.11.2021 | Newag Nowy Sącz", Foto = "", Adnotacje = "Brak"
            };

            Assert.IsNotNull(result);
        }
Example #11
0
        /// <summary>
        ///     Moves a train at the specified index one step up.
        /// </summary>
        /// <param name="index">The index of the train.</param>
        public virtual void MoveTrainUpAt(int index)
        {
            Contract.Requires <ArgumentOutOfRangeException>(index >= 0 && index < Trains.Count());

            Contract.Assume(index < this._trains.Count);

            Train train = this._trains[index];

            this._trains.RemoveAt(index);
            this._trains.Insert(index - 1, train);
        }
 public ActionResult Edit([Bind(Include = "TrainId,TrainNumber,TrainType,BrigadeId,TrainAge")] Trains trains)
 {
     if (ModelState.IsValid)
     {
         db.Entry(trains).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.BrigadeId = new SelectList(db.Brigades, "BrigadeId", "BrigadeName", trains.BrigadeId);
     return(View(trains));
 }
Example #13
0
        public static void AddTrainArrival(int idTrain, int platform, TimeSpan arrival)
        {
            Trains train = new Trains
            {
                name        = "TLK " + idTrain.ToString(),
                platform    = platform,
                timeArrival = arrival.ToString()
            };

            arrivals.Add(train);
        }
 public void AddTrain(Train train)
 {
     if (train == null)
     {
         throw new ArgumentNullException(nameof(train));
     }
     if (Trains.Contains(train))
     {
         return;
     }
     Trains.Add(train);
 }
        public void UpdateContent(LanguageSubtag languageTag)
        {
            this.LanguageTag = languageTag;

            RaisePropertyChanged(() => StationGroupDescription);

            foreach (var train in Trains)
            {
                train.UpdateContent(languageTag);
            }

            State = CheckState(Trains.ToArray());
        }
Example #16
0
        public void UpdateContent(LanguageSubtag languageTag)
        {
            this.LanguageTag = languageTag;

            RaisePropertyChanged(() => RailwayDescription);

            foreach (var train in Trains)
            {
                train.UpdateContent(languageTag);
            }

            StateFromA = CheckState(Trains.Where(x => x.IsFromA).ToArray());
            StateFromB = CheckState(Trains.Where(x => x.IsFromB).ToArray());
        }
Example #17
0
        public void TestNumberOfPeople()
        {
            IWebDriver Browser = new ChromeDriver();

            Browser.Navigate().GoToUrl("https://www.tutu.ru/");
            HomePage homePage = new HomePage(Browser).InpuntInformation("Санкт-Петербург", "Москва", "30.11.2019");
            Trains   trains   = new Trains(Browser).Takefirst();

            ChangeWindow(Browser);
            TakePlace takePlace = new TakePlace(Browser).ChoosePlace();

            Assert.AreEqual("Вы не выбрали ни одного пассажира", homePage.GetError());
            Browser.Quit();
        }
        // GET: Trains/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Trains trains = db.Trains.Find(id);

            if (trains == null)
            {
                return(HttpNotFound());
            }
            return(View(trains));
        }
        // GET: Trains/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Trains trains = db.Trains.Find(id);

            if (trains == null)
            {
                return(HttpNotFound());
            }
            ViewBag.BrigadeId = new SelectList(db.Brigades, "BrigadeId", "BrigadeName", trains.BrigadeId);
            return(View(trains));
        }
        public static bool Convert(VehicleInfo info)
        {
            long id;

            if (!Util.TryGetWorkshopId(info, out id) || !Trains.GetConvertedIds(TrainCategory.Tram).Contains(id))
            {
                return(false);
            }
            var tram = Cache.TramVehicle;

            if (tram == null)
            {
                return(false);
            }
            UnityEngine.Debug.Log("Converting " + info.name);
            info.m_class              = (ItemClass)ScriptableObject.CreateInstance(nameof(ItemClass));
            info.m_class.name         = info.name;
            info.m_class.m_subService = ItemClass.SubService.PublicTransportTram;
            info.m_class.m_service    = ItemClass.Service.PublicTransport;

            info.m_vehicleType = VehicleInfo.VehicleType.Tram;
            var oldAi = info.GetComponent <TrainAI>();

            Object.DestroyImmediate(oldAi);
            var ai = info.gameObject.AddComponent <TramAI>();

            ai.m_transportInfo = Cache.TramTransport;
            ai.m_info          = info;
            info.m_vehicleAI   = ai;

            ai.m_passengerCapacity = ((TramAI)tram.m_vehicleAI).m_passengerCapacity;
            ai.m_arriveEffect      = ((TramAI)tram.m_vehicleAI).m_arriveEffect;
            info.m_acceleration    = tram.m_acceleration;
            info.m_braking         = tram.m_braking;
            info.m_leanMultiplier  = tram.m_leanMultiplier;
            info.m_dampers         = tram.m_dampers;
            info.m_springs         = tram.m_springs;
            info.m_maxSpeed        = tram.m_maxSpeed;
            info.m_nodMultiplier   = tram.m_nodMultiplier;

            var effect = tram.m_effects.Where(e => e.m_effect.name == "Tram Movement").First();

            info.m_effects = info.m_effects.Where(e => e.m_effect.name == "Train Movement").Select(e => effect).ToArray();

            TrainConversions.CustomConversions(info, id, TrainCategory.Tram);

            return(true);
        }
 public static void TrainMapper()
 {
     string[] trainData = FetchData(trainDataPath);
     for (int i = 1; i < trainData.Length; i++)
     {
         string[] splitline = trainData[i].Split(';', ',', ':');
         Trains.Add(new Train(
                        int.Parse(splitline[0]),
                        splitline[1],
                        int.Parse(splitline[2]),
                        bool.Parse(splitline[3]),
                        new LogComponent(),
                        new EngineComponent(),
                        new PassengerCartComponent()));
     }
 }
Example #22
0
 public void ReciveTrainInfo(TrainInfo info)
 {
     if (TrainsDictionary.Keys.FirstOrDefault(a => a.Name == info.BaseTrain.Number) == null && tempProxy != null)
     {
         var train = new TrainUI
         {
             Name            = info.BaseTrain.Number,
             Location        = info.TrainPosition,
             PassangersCount = info.BaseTrain.CurrentPassengers,
             Speed           = int.Parse(info.BaseTrain.Speed.ToString())
         };
         TrainsDictionary.Add(train, tempProxy);
         Trains.Add(train);
         tempProxy = null;
     }
 }
Example #23
0
        public ActionResult Edit([Bind(Include = "Id,Seria,Numer,Stacja,Rewizja,Adnotacje")] Trains trains)
        {
            if (ModelState.IsValid)
            {
                HttpPostedFileBase file = Request.Files["loco"];
                if (file != null && file.ContentLength > 0)
                {
                    trains.Foto = file.FileName;
                    file.SaveAs(HttpContext.Server.MapPath("~/Images/") + trains.Foto);
                }

                db.Entry(trains).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(trains));
        }
Example #24
0
        public static void AddTrainDeparture(int idTrain, int platform, TimeSpan departure)
        {
            int index = atStation.FindIndex(
                delegate(Trains trainIndex)
            {
                return(trainIndex.name == "TLK " + idTrain);
            });

            atStation.RemoveAt(index);
            Trains train = new Trains
            {
                name          = "TLK " + idTrain.ToString(),
                platform      = platform,
                timeDeparture = departure.ToString()
            };

            departures.Add(train);
        }
Example #25
0
        private void CloseButton_Click(object sender, EventArgs e)
        {
            if (!nameValidator.Valid)
            {
                MessageBox.Show(T._("Bitte erst alle Fehler beheben:\n{0}", nameValidator.ErrorMessage ?? ""));
                return;
            }

            var nameExists = Train.ParentTimetable !.Trains.Where(t => t != Train).Select(t => t.TName).Contains(nameTextBox.Text);

            if (nameExists)
            {
                if (MessageBox.Show(T._("Ein Zug mit dem Namen \"{0}\" ist bereits vorhanden. Wirklich fortfahren?", nameTextBox.Text), "FPLedit",
                                    MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return;
                }
            }

            Train.TName      = nameTextBox.Text;
            Train.Locomotive = locomotiveComboBox.Text;
            Train.Mbr        = mbrComboBox.Text;
            Train.Last       = lastComboBox.Text;
            Train.Comment    = commentTextBox.Text;
            Train.Days       = daysControl.SelectedDays;

            if (!editor.ApplyChanges())
            {
                return;
            }

            NextTrains = new List <TransitionEntry>();
            if (transitionDropDown.SelectedValue != null)
            {
                NextTrains.Add(new TransitionEntry((ITrain)transitionDropDown.SelectedValue, Days.All, null));
            }

            if (Train.Id > 0)
            {
                tt.SetTransitions(Train, NextTrains);
            }

            Close(DialogResult.Ok);
        }
        public static bool Convert(VehicleInfo info)
        {
            long id;

            if (!Util.TryGetWorkshopId(info, out id) || !Trains.GetConvertedIds(TrainCategory.Trains).Contains(id))
            {
                return(false);
            }
            var metro = Cache.MetroVehicle;

            if (metro == null)
            {
                return(false);
            }
            UnityEngine.Debug.Log("Converting " + info.name);
            info.m_class              = (ItemClass)ScriptableObject.CreateInstance(nameof(ItemClass));
            info.m_class.name         = info.name;
            info.m_class.m_subService = ItemClass.SubService.PublicTransportMetro;
            info.m_class.m_service    = ItemClass.Service.PublicTransport;
            info.m_class.m_layer      = ItemClass.Layer.MetroTunnels;

            info.m_vehicleType = VehicleInfo.VehicleType.Metro;
            var ai = info.GetComponent <TrainAI>();

            Object.DestroyImmediate(ai);
            ai = info.gameObject.AddComponent <MetroTrainAI>();
            ai.m_transportInfo = Cache.MetroTransport;
            ai.m_info          = info;
            info.m_vehicleAI   = ai;

            info.m_acceleration   = metro.m_acceleration;
            info.m_braking        = metro.m_braking;
            info.m_leanMultiplier = metro.m_leanMultiplier;
            info.m_dampers        = metro.m_dampers;
            info.m_springs        = metro.m_springs;
            info.m_maxSpeed       = metro.m_maxSpeed;
            info.m_nodMultiplier  = metro.m_nodMultiplier;

            TrainConversions.CustomConversions(info, id, TrainCategory.Trains);

            return(true);
        }
Example #27
0
        public bool Add(Train train) //add train
        {
            if (train == null)
            {
                throw new ArgumentNullException("train");
            }

            Train t = FindTrain(train.TrainUnit);

            if (t == null)
            {
                Trains.Add(train); //add to list
                if (OnTrainUpdate != null)
                {
                    OnTrainUpdate(this, train, true);
                }
                return(true);
            }
            return(false);
        }
Example #28
0
        public bool Remove(Train train) //remove train
        {
            if (train == null)
            {
                throw new ArgumentNullException("train");
            }

            Train t = FindTrain(train.TrainUnit);

            if (t != null)
            {
                Trains.Remove(t); //remove from list
                if (OnTrainUpdate != null)
                {
                    OnTrainUpdate(this, t, false);
                }
                return(true);
            }
            return(false);
        }
Example #29
0
        public static void AddTrainAtStation(int idTrain, int platform, TimeSpan arrival, TimeSpan departure, int passengers)
        {
            int index = arrivals.FindIndex(
                delegate(Trains trainIndex)
            {
                return(trainIndex.name == "TLK " + idTrain);
            });

            arrivals.RemoveAt(index);
            Trains train = new Trains
            {
                name          = "TLK " + idTrain.ToString(),
                platform      = platform,
                timeArrival   = arrival.ToString(),
                timeDeparture = departure.ToString(),
                passengers    = passengers
            };

            atStation.Add(train);
        }
Example #30
0
 /// <summary>
 /// Method to generate trains
 /// </summary>
 public void GenerateTrain()
 {
     while (Go)
     {
         Random random = new Random();
         int    sleep  = random.Next(minCheckTime, maxCheckTime);
         Thread.Sleep(sleep);
         // Making list of empty tracks
         List <Track> emptyTracks = new List <Track>();
         foreach (var junction in Junctions)
         {
             foreach (var track in junction.EntryTracks)
             {
                 if (track.TrackMutex.WaitOne(10))
                 {
                     if (track.IsEmpty)
                     {
                         emptyTracks.Add(track);
                     }
                     else
                     {
                         track.TrackMutex.ReleaseMutex();
                     }
                 }
             }
         }
         // Adding train on random empty track if there is more than 1 empty track
         if (emptyTracks.Count > 1)
         {
             Track trackToGenerateTrain = emptyTracks.ElementAt(random.Next(0, emptyTracks.Count));
             Train train = new Train(this, trackToGenerateTrain, TrainId++);
             Trains.Add(train);
         }
         // Releasing mutex of empty tracks
         foreach (var track in emptyTracks)
         {
             track.TrackMutex.ReleaseMutex();
         }
     }
 }