static void Main() { var graham = new Racer(7, "Graham", "Hill", "UK", 14); var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); var mario = new Racer(16, "Mario", "Andretti", "USA", 12); var racers = new List<Racer>(20) { graham, emerson, mario }; racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91)); racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20)); racers.AddRange(new Racer[] { new Racer(14, "Niki", "Lauda", "Austria", 25), new Racer(21, "Alain", "Prost", "France", 51)}); var racers2 = new List<Racer>(new Racer[] { new Racer(12, "Jochen", "Rindt", "Austria", 6), new Racer(22, "Ayrton", "Senna", "Brazil", 41) }); racers.AddRange(racers2); racers.RemoveRange(0, 2); Console.WriteLine( racers.FindIndex(r => r.FirstName == "Mario")); foreach (var test in racers) { Console.WriteLine(test.ToString()); } Console.ReadKey(); }
public void RaiseRacerParsed(Racer r) { if (null != RacerParsed) { RacerParsed(this, new RacerParsedEventArgs(r)); } }
static void Main() { var graham = new Racer(7, "Graham", "Hill", "UK", 14); var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); var mario = new Racer(16, "Mario", "Andretti", "USA", 12); var racers = new List<Racer>(20) { graham, emerson, mario }; racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91)); racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20)); racers.Add(new Racer(17, "Jack", "ss", "Austria", 22)); racers.AddRange(new Racer[] { new Racer(14, "Niki", "Lauda", "Austria", 25), new Racer(21, "Alain", "Prost", "France", 51)}); var racers2 = new List<Racer>(new Racer[] { new Racer(12, "Jochen", "Rindt", "Austria", 6), new Racer(14, "Jack", "dd", "Austria", 63), new Racer(22, "Ayrton", "Senna", "Brazil", 41) }); //这个比较实用 racers.ForEach(r=>Console.WriteLine("{0:A}",r)); racers.ForEach(r => Console.WriteLine("{0}", r.FirstName)); racers.ForEach(ActionHandler); //排序 Console.WriteLine("-----------Order---------"); racers.Sort(new RacerComparer(CompareType.Country)); racers.ForEach(ActionHandler); Console.WriteLine("-----------OverLoad Order---------"); racers.Sort((r1, r2) => r2.Wins.CompareTo(r1.Wins)); racers.ForEach(r=>Console.WriteLine("{0}",r.Wins)); Console.ReadKey(); }
static void Main() { var graham = new Racer(7, "Graham", "Hill", "UK", 14); var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); var mario = new Racer(16, "Mario", "Andretti", "USA", 12); var racers = new List<Racer>(20) { graham, emerson, mario }; racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91)); racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20)); racers.AddRange(new Racer[] { new Racer(14, "Niki", "Lauda", "Austria", 25), new Racer(21, "Alain", "Prost", "France", 51)}); // insert elements racers.Insert(3, new Racer(6, "Phil", "Hill", "USA", 3)); // accessing elements for (int i = 0; i < racers.Count; i++) { WriteLine(racers[i]); } foreach (var r in racers) { WriteLine(r); } // searching int index1 = racers.IndexOf(mario); int index2 = racers.FindIndex(new FindCountry("Finland").FindCountryPredicate); int index3 = racers.FindIndex(r => r.Country == "Finland"); Racer racer = racers.Find(r => r.FirstName == "Niki"); List<Racer> bigWinners = racers.FindAll(r => r.Wins > 20); foreach (Racer r in bigWinners) { WriteLine($"{r:A}"); } WriteLine(); // remove elements if (!racers.Remove(graham)) { WriteLine("object not found in collection"); } var racers2 = new List<Racer>(new Racer[] { new Racer(12, "Jochen", "Rindt", "Austria", 6), new Racer(22, "Ayrton", "Senna", "Brazil", 41) }); }
public ExportRacer(Racer racer) { Bib = racer.Bib; Name = racer.Name; Category = racer.Category; TeamName = racer.TeamName; Time = racer.Time; Gender = racer.Gender; }
public CameraWrapper(Racer racer) { stage = CameraStage.ShipSelect; this.racer = racer; properties = new SharedCameraProperties(Viewports.fullViewport); revolveCamera = new RevolveCamera(ref properties); currentCamera = revolveCamera; #if WINDOWS mouseCamera = new MouseCamera(ref properties, getShipPosition, getShipOrientation); #endif }
//List public static void AddRacers() { Racer graham = new Racer(7, "Graham", "Hill", "UK", 14); Racer emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); Racer mario = new Racer(16, "Mario", "Andretti", "USA", 12); racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91)); racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20)); racers.AddRange(new Racer[]{ new Racer(14,"Niki","Lauda","Austria",25), new Racer(27,"Alain","Porst","France",51)}); racers.Insert(2, new Racer(10, "lilei", "hanmeimei", "China", 2)); }
//Should also take 'useKeyboard' Boolean public RacingControls(Racer myRacer, IInputManager inputManager) { //playerIndex = index;//Player index should be able to be 'any' or 'keyboard' too padIndex = PlayerIndex.One; setChosenInput(inputManager); racer = myRacer; tapNo = 0; lastTaps = new decimal[4]; tapWeights = new decimal[4] {1,.3m,.1m,.05m}; racer.beatQueue.isLevellingDown = false; racer.beatQueue.isLevellingUp = false; sequenceNumber = 0; vibrateNumber = 0; //vibrateSequence = true; }
private String ToLatexSnippet(Racer r, bool isFirst) { StringBuilder snippet = new StringBuilder(" & "); if (!isFirst) { snippet.Append(" & "); } snippet.Append(r.Name); snippet.Append(" & "); snippet.Append(r.Bib); snippet.Append(" & "); snippet.Append(r.Time + "\\,s & "); // add small space between time and unit if (!isFirst) { snippet.Append("\\\\ \n"); } return snippet.ToString(); }
public void addRacer(Racer racer) { if (!hasTeam(racer.TeamName)) { if (IsMixed) { Teams.Add(new MixedTeam(racer.TeamName)); } else { Teams.Add(new Team(racer.TeamName)); } } Team team = getTeamByName(racer.TeamName); team.addRacer(racer); team.TrophyTime += racer.Time; }
public Checkpoint LastCheckpoint(Racer r) { int index = -1; for (int i = 0; i < allCheckpoints.Count; i++) { if (allCheckpoints[i].BeenHere(r)) { index++; } else { break; } } if (index == -1) { index = allCheckpoints.Count - 1; } return(allCheckpoints[index]); }
//Load the Racers public Racer[] LoadRacers(PictureBox pbSonic, PictureBox pbMinato, PictureBox pbMonkey, PictureBox pbCt) { racer[0] = new Racer { Length = 0, Img = pbSonic, Name = "Sonic" }; racer[0].Img.Image = Properties.Resources.sonicStand; racer[1] = new Racer { Length = 0, Img = pbMinato, Name = "Minato" }; racer[1].Img.Image = Properties.Resources.minato; racer[2] = new Racer { Length = 0, Img = pbMonkey, Name = "Monkey" }; racer[2].Img.Image = Properties.Resources.monkey; racer[3] = new Racer { Length = 0, Img = pbCt, Name = "Counter-Terrorist" }; racer[3].Img.Image = Properties.Resources.ctGun; return(racer); }
static void Main() { var graham = new Racer(7, "Graham", "Hill", "UK", 14); var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); var mario = new Racer(16, "Mario", "Andretti", "USA", 12); var racers = new List<Racer>(20) { graham, emerson, mario }; racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91)); racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20)); racers.AddRange(new Racer[] { new Racer(14, "Niki", "Lauda", "Austria", 25), new Racer(21, "Alain", "Prost", "France", 51)}); var racers2 = new List<Racer>(new Racer[] { new Racer(12, "Jochen", "Rindt", "Austria", 6), new Racer(22, "Ayrton", "Senna", "Brazil", 41) }); racers.Sort((r1, r2) => r2.Wins.CompareTo(r1.Wins)); }
/// <summary> /// Versenyző adatainak módosítása /// </summary> /// <param name="teamName">A csapat neve</param> /// <param name="oldRacerName">A versenyző régi neve</param> /// <param name="racerName">A versenyző új neve</param> /// <param name="racerAge">A versenyző új neve</param> /// <param name="racerSalary">A versenyző költsége</param> public void updateRacerInTeam(string teamName, string oldRacerName, string racerName, string racerAge, string racerSalary) { int racerAgeNumber = 0; if (!int.TryParse(racerAge, out racerAgeNumber)) { throw new ControllerException("A megadott életkor nem megfelelő alakú szám!"); } int racerSalaryNumber = 0; if (!int.TryParse(racerSalary, out racerSalaryNumber)) { throw new ControllerException("A megadott fizetés nem megfelelő alakú szám!"); } if (teamService.existRacer(racerName, racerAgeNumber)) { throw new ControllerException("Már létezik " + racerName + " nevű versenyző, aki " + racerAge + " éves."); } try { int racerId = teamService.getRacerId(teamName, oldRacerName); if (racerId > 0) { Racer newRacer = new Racer(racerId, racerName, racerAgeNumber, racerSalaryNumber); teamService.updateReacerInTeam(teamName, oldRacerName, newRacer); } else { throw new ControllerException("A megadott versenyőjnek nem találom az azonosítáját"); } } catch (TeamServiceExeption tse) { throw new ControllerException(tse.Message); } catch (RacerException re) { throw new ControllerException(re.Message); } }
public async Task showRacerAsync(int i = -1) { Racer r; if (i < 0) { r = Racer.get_racer(Context.Message.Author.Id, Context.Guild.Id); } else { r = Racer.get_racer(i); } if (r == null) { await ReplyAsync(Context.User.Mention + ", you don't have a current pilot or this pilot doesn't exist in the database."); return; } await Context.Channel.SendMessageAsync("", false, r.embed(i, Context), null); }
public async Task UpdateAbilityAsync(int ID, int v = -1) { var r = Racer.get_racer(Context.Message.Author.Id, Context.Guild.Id); if (r == null) { await ReplyAsync("No pilot found for you. Use `zg!createpilot` to make one"); return; } if (r.inGame) { await ReplyAsync("You can't modify your pilot while racing!"); return; } Racer.replace_racer(r); await ReplyAsync(Context.User.Mention + ", Ability changed to "); }
private void LoadRacers() { racers[0] = new Racer { length = 0, myPB = pbRacer1, name = "CSharp" }; racers[0].myPB.BackgroundImage = Resources.csharpLogoResize; racers[1] = new Racer { length = 0, myPB = pbRacer2, name = "Java" }; racers[1].myPB.BackgroundImage = Resources.javaLogoResize; racers[2] = new Racer { length = 0, myPB = pbRacer3, name = "Php" }; racers[2].myPB.BackgroundImage = Resources.phpLogoResize; racers[3] = new Racer { length = 0, myPB = pbRacer4, name = "Python" }; racers[3].myPB.BackgroundImage = Resources.pythonLogoResize; for (int i = 0; i < racers.Length; i++) { cbxRacers.Items.Add(racers[i].name); } }
private async void stopBtm_Clicked(object sender, EventArgs e) { if (_selectedRacer == null || _selectedRacer.status == Status.StandyBy.ToString() || _selectedRacer.status == Status.Finished.ToString()) { return; } if (placement >= _raceGroups[prevHeat].Count) { placement = 0; } _selectedRacer.status = Status.Finished.ToString(); _selectedRacer.setPlacement(_round, placement); _selectedRacer.setRoundFinish(_round, true); await _connection.UpdateAsync(_selectedRacer); _raceGroups = getRaceGroups(); ViewHeats.ItemsSource = _raceGroups; placement++; _selectedRacer = null; }
/// <summary> /// Loads Racers. /// </summary> private void LoadRacers() { racers[0] = new Racer { Length = 0, PB = pbRacer1, Name = "BMW" }; racers[0].PB.BackgroundImage = Resources.bmw_logo; racers[1] = new Racer { Length = 0, PB = pbRacer2, Name = "Mercedes" }; racers[1].PB.BackgroundImage = Resources.mercedes_logo; racers[2] = new Racer { Length = 0, PB = pbRacer3, Name = "Audi" }; racers[2].PB.BackgroundImage = Resources.audi_logo; racers[3] = new Racer { Length = 0, PB = pbRacer4, Name = "Porsche" }; racers[3].PB.BackgroundImage = Resources.porsche_logo; for (int i = 0; i < racers.Length; i++) { cbxRacers.Items.Add(racers[i].Name); } }
public async Task updateRacerAsync(params string[] inputs) { var r = Racer.get_racer(Context.Message.Author.Id, Context.Guild.Id); if (r == null) { await ReplyAsync("You don't have a pilot! Please use `zg!createpilot` instead"); return; } var string_to_value = helpers.parseInputs(inputs); if (!r.update(string_to_value, out string error)) { await ReplyAsync(Context.User.Mention + ". Racer creation failed with error message: " + error); return; } Racer.update_racer(r); await ReplyAsync(Context.User.Mention + ", you've updated your pilot. Use `zg!pilot` to see your changes."); }
private void listBoxRacer_SelectedIndexChanged(object sender, EventArgs e) { if (listBoxRacer.SelectedIndex < 0) { return; } string teamName = listBoxTeam.SelectedItem.ToString(); string racerName = listBoxRacer.SelectedItem.ToString(); try { Racer selectedRacer = controller.searchRacerByName(teamName, racerName); if (selectedRacer != null) { textBoxRacerName.Text = selectedRacer.getName(); textBoxRacerAge.Text = selectedRacer.getAge().ToString(); textBoxRacerSalary.Text = selectedRacer.getSalary().ToString(); } } catch (ControllerException ce) { } }
public ViewModel() { currentRace = new Race(); currentRace.RaceTitle = "TestRace"; DateTime todayPlusOne = DateTime.Today.AddDays(1); currentRace.StartDate_Time = todayPlusOne; currentRace.RaceDescription = "This is crazy."; Racer tempRacer = new Racer(); tempRacer.FirstName = "Alex"; tempRacer.LastName = "Thayn"; tempRacer.Gender = Racer.GenderType.Male; tempRacer.Age = 25; currentRace.racers.Add(tempRacer); AddRacerCommand = new RelayCommand(AddRacer); currentRacer = new Racer(); }
private void SetOrder(List <Racer> finished) { List <Racer> left = new List <Racer>(racers); List <Racer> newOrder = new List <Racer>(finished); while (left.Count != 0) { Racer highest = left[0]; for (int i = 0; i < left.Count; i++) { if (left[i].GetScore() > highest.GetScore()) { highest = left[i]; } } newOrder.Add(highest); left.Remove(highest); } if (newOrder.Count == racers.Count) { racers = newOrder; } }
public bool CheckLastCheckpoint(Racer mR, Checkpoint cP) { int index = allCheckpoints.IndexOf(cP); if (index - 1 >= 0) { index--; if (allCheckpoints[index].finish || allCheckpoints[index].BeenHere(mR)) { return(true); } } else { index = allCheckpoints.Count - 1; if (allCheckpoints[index].finish || allCheckpoints[index].BeenHere(mR)) { return(true); } } return(false); }
private void OnTriggerStay(Collider other) { if (other.gameObject.tag == "Car" && !cooldown) { Racer r = other.GetComponentInChildren <Racer>(); if (r.myItem == null) { if (test == null) { r.NewItem(Item_Manager.instance.GetItem()); box.enabled = false; cooldown = true; StartCoroutine(Cooldown()); } else { r.NewItem(test); box.enabled = false; cooldown = true; StartCoroutine(Cooldown()); } } } }
public IHttpActionResult Patch([FromODataUri] int key, Delta <Racer> patch) { Validate(patch.GetEntity()); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Racer racer = db.RacerSet.Find(key); if (racer == null) { return(NotFound()); } patch.Patch(racer); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!RacerExists(key)) { return(NotFound()); } else { throw; } } return(Updated(racer)); }
static void Main(string[] args) { var graham = new Racer(7, "Graham", "Hill", "UK", 14); var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); var mario = new Racer(16, "Mario", "Andretti", "USA", 12); var racers = new List <Racer>(20) { graham, emerson, mario }; racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91)); racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20)); racers.AddRange(new Racer[] { new Racer(14, "Niki", "Lauda", "Austria", 25), new Racer(21, "Alain", "Prost", "France", 51) }); var racers2 = new List <Racer>(new Racer[] { new Racer(12, "Jochen", "Rindt", "Austria", 6), new Racer(22, "Ayrton", "Senna", "Brazil", 41) }); }
void NetworkUpdate() { ServerPlayer sp = FindServerPlayer(Network.player); //Find own player if (sp != null) { Racer r = sp.racer; if (r != null) { networkView.RPC("UpdatePlayerBall", RPCMode.Others, Network.player, r.rigidbody.position, r.rigidbody.rotation, r.rigidbody.velocity, r.rigidbody.angularVelocity); } } //Update AIBalls if server if (Network.isServer && aiBalls != null) { for (int i = 0; i < aiBalls.Length; i++) { Racer r = aiBalls[i]; networkView.RPC("UpdateAIBall", RPCMode.Others, i, r.transform.position, r.rigidbody.rotation, r.rigidbody.velocity, r.rigidbody.angularVelocity); } } }
private bool TryGetRacer(string id, out Racer racer) { racer = Race.Racers.FirstOrDefault(r => r.Id.Equals(id)); return(racer != null); }
public async Task createNewDeckAsync(params string[] inputs) { var r = Racer.get_racer(Context.Message.Author.Id, Context.Guild.Id); if (r == null) { await ReplyAsync("You don't have a pilot! Please use `zg!createpilot` instead"); return; } var input_dict = helpers.parseInputs(inputs); int carID; CardLegality legality; if (!input_dict.ContainsKey("carid")) { await ReplyAsync(Context.User.Mention + ", you didn't include the mandatory key `carid` in your input."); return; } if (!int.TryParse(input_dict["carid"], out carID)) { await ReplyAsync(Context.User.Mention + ", the `carid` wasn't a valid integer"); return; } var car = Car.get_Car(carID); if (car == null) { await ReplyAsync(Context.User.Mention + ", the provided `carid: " + carID + "` does not exist."); return; } if (!input_dict.ContainsKey("legality")) { await ReplyAsync(Context.User.Mention + ", you didn't include mandatory key `legality` in your input."); return; } legality = Card.stringToCardLegality(input_dict["legality"]); if (legality == CardLegality.INVALID) { await ReplyAsync(Context.User.Mention + ", you didn't provide a valid legality input. `red`, `blue`, or `yellow`"); return; } if (r.carToDeckLegalityToDeckID.ContainsKey(carID)) { if (r.carToDeckLegalityToDeckID[carID].ContainsKey(legality)) { await ReplyAsync(Context.User.Mention + ", you can't edit a deck using this command. Try `zg!updatedeck`"); return; } } Deck d; if (!Deck.fromDictionary(input_dict, car, r, out string error, out d)) { if (d != null) { await ReplyAsync(Context.User.Mention + ", failed to make deck with error: " + error, false, d.embed()); return; } else { await ReplyAsync(Context.User.Mention + ", failed to make deck with error: " + error); return; } } d.player_discord_id = Context.User.Id; d.server_discord_id = Context.Guild.Id; Deck.insert_deck(d); var deck = Deck.get_deck(d.Title); if (r.carToDeckLegalityToDeckID.ContainsKey(carID)) { r.carToDeckLegalityToDeckID[carID].Add(legality, deck.ID); } else { var dict = new Dictionary <CardLegality, long>(); dict.Add(legality, deck.ID); r.carToDeckLegalityToDeckID.Add(carID, dict); } Racer.update_racer(r); await ReplyAsync(Context.User.Mention + ", made deck as shown below. To update use `zg!updatedeck id=" + deck.ID + " [other updates]`", false, deck.embed()); }
public RacingControls(Racer myRacer) : this(myRacer, new PadInputManager(PlayerIndex.One)) { //Use first Controler as default. }
public bool CollidesWith(Racer racer) { return(false); }
private readonly SpatialHash <Racer> spatialFromRaces = new SpatialHash <Racer>(5f); // size of Races x 2 // Spatial hashing might be the fastest way // it can match O(n^2) in worst case - all racers in the same spatial cell - not desirable // best O(n) // Also further improvement is to use ECS systems to query for Alive and check their position with hashed Position // Problem with ecs - no Dictionary/list or reference typed values. private void UpdateRacers(float deltaTimeS, List <Racer> racers) { // assume dictionary it is empty // dictionary can also be placed here ,but it is better when we do not generate garbage // assume Racer is a class and not a struct! (struct behaves differently in Dictionaries inside Unity env.) // Fill in the dictionary racersAndState int Count = racers.Count; bool isAlive = false; Racer racer1 = null; // each frame clear and fill spatialFromRaces.Clear(); // Racer update takes milliseconds float deltaTimeMs = deltaTimeS * 1000.0f; for (int i = 0; i < Count; i++) { racer1 = racers[i]; isAlive = racer1.IsAlive(); racersAndState.Add(racer1, isAlive); // Updates the racers that are alive if (isAlive) { //Racer update takes milliseconds racers[i].Update(deltaTimeMs); // fill in only the alive spatialFromRaces.Insert(racer1.Position, racer1); } } // Solution with Bag Problem ( removing dimension/squashing space) : // To further improve it - we can use a sort O(n*log(n)) on the racing line - make a line from the racer ( position +- with/height) // (0 is start + ( position +- with/height) - 100 finishing line) ( make it 1 dimensional) // traverse sorted array of rectangles and check with the min distance if any of them collides with the - O(n) // this way we can achieve O(n*log(n)) . // See https://www.geeksforgeeks.org/top-algorithms-and-data-structures-for-competitive-programming/#algo1 // Solution with Octree : // Requires contant update on Octree // Check each racer in with all of the racers from his Octant and it's neighbor's Octant O (n * (8 + 6 + 1) ) === O(n) // Spatial hashing might be the fastest way // Collides // instead of whole Racer - we can use index of Racer Racer racer2 = null; int counter2 = 0; for (int racerIndex1 = 0; racerIndex1 < Count; racerIndex1++) { racer1 = racers[racerIndex1]; var listOthers = spatialFromRaces.QueryPosition(racer1.Position); counter2 = listOthers.Count; // maybe skip if we are already processed - need to test for (int racerIndex2 = 0; racerIndex2 < counter2; racerIndex2++) { racer2 = racers[racerIndex2]; // main issue here - CollidesWith() - the less it is called the better if (racer1.IsCollidable() && racer2.IsCollidable() && racer1.CollidesWith(racer2)) { OnRacerExplodes(racer1); // OnRacerExplodes(racer2); // need to test if it has the same behavior racersAndState[racer1] = false; racersAndState[racer2] = false; } } // Solution with simpler loop // O(n^2) --> O( n *(n -1)/2) // already less than halfed of what it was. // additionally first check if the racer1 is dead - will also help a little but may change the behavior // other racers may not explode even when they appear to collide with it // if (racersAndState[racer1]) //need to test if it is the same behavior // also check if racer1.IsCollidable() - it can be not collidable when Destroyed // { // for (int racerIndex2 = racerIndex1; racerIndex2 < Count; racerIndex2++) // { // racer2 = racers[racerIndex2]; // // main issue here - CollidesWith() - the less it is called the better // if (racer1.IsCollidable() && racer2.IsCollidable() && racer1.CollidesWith(racer2)) // { // OnRacerExplodes(racer1); // // OnRacerExplodes(racer2); // need to test if it is the same behavior // racersAndState[racer1] = false; // racersAndState[racer2] = false; // } // } // } } // Gets the racers that are still alive // Get rid of all the exploded racers // GC can spike( racers.Clear(); // Builds the list of remaining racers // foreach is not ideal, but will be sufficient foreach (var item in racersAndState.Keys) { if (racersAndState[item]) { racers.Add(item); // Racers update can be placed here - only alive one will be updated // racers.Update(deltaTimeMs); } } // clear up the memory // Garbage( Ideally if this would not needed if it was implemented on a stack racersAndState.Clear(); // Another solution - // With the help of Octree - Each Racer internally will keep track of the cars nearby // this way there will be no need in the unified dictionary of any sort and we would not // need to worry about the garbage genereted. Just simple method - check if collides. }
private RacerData GetRacerData(Racer racer) { foreach (RacerData data in racersData) if (data.racer == racer) return data; return null; }
public override void makeAction(Racer racer) { racer.Die(); }
private void SetRacerPos(Racer racer) { Vector3 pos = k_firstRacerPos + k_racerOffset * (float)(racer.ControllerIndex - 1); racer.transform.localPosition = pos; }
public RacerParsedEventArgs(Racer racer) { Racer = racer; }
public Race GetNextRace() { // Is the Heat completed? if (RaceDataStore.PrelimHeatCompleted) { throw new NoMoreRacersException(); } // Create a new Race object Race nextRace = new Race(); // Do we have an active Race? if (_activeRace == null) { // Assign a new active race object _activeRace = new Race(); // Load the on deck racers _activeRace.OnDeckLane1 = RaceDataStore.LanePool.Lane1Stack.Dequeue(); _activeRace.OnDeckLane2 = RaceDataStore.LanePool.Lane2Stack.Dequeue(); _activeRace.OnDeckLane3 = RaceDataStore.LanePool.Lane3Stack.Dequeue(); _activeRace.OnDeckLane4 = RaceDataStore.LanePool.Lane4Stack.Dequeue(); } // Copy the current on deck racers to the lanes nextRace.Lane1Racer = _activeRace.OnDeckLane1; nextRace.Lane2Racer = _activeRace.OnDeckLane2; nextRace.Lane3Racer = _activeRace.OnDeckLane3; nextRace.Lane4Racer = _activeRace.OnDeckLane4; // Do we have any more racers? if (RaceDataStore.LanePool.Lane1Stack.Count > 0) { // Get the next racers from our lane pool queues nextRace.OnDeckLane1 = RaceDataStore.LanePool.Lane1Stack.Dequeue(); nextRace.OnDeckLane2 = RaceDataStore.LanePool.Lane2Stack.Dequeue(); nextRace.OnDeckLane3 = RaceDataStore.LanePool.Lane3Stack.Dequeue(); nextRace.OnDeckLane4 = RaceDataStore.LanePool.Lane4Stack.Dequeue(); } else { // Build a default racer object Racer tempRacer = new Racer(string.Empty, string.Empty); tempRacer.PinewoodCar.Number = "last race of heat"; nextRace.OnDeckLane1 = nextRace.OnDeckLane2 = nextRace.OnDeckLane3 = nextRace.OnDeckLane4 = null; // There are no more racers so mark the Heat as complete RaceDataStore.PrelimHeatCompleted = true; } // Assign this to our Active Race member variable _activeRace = nextRace; return nextRace; }
/// <summary> /// Add new racer to the race /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolStripButtonAddRacer_Click(object sender, EventArgs e) { int racerCount = _racerList.Count; // Create a new racer Racer racer = new Racer("Racer", racerCount.ToString()); // Add this new racer to our List _racerList.Add(racer); this.racerBindingSource.Add(racer); // Reload our list view this.LoadListView(); }
private List<Racer> AddNewRacer(int howMany) { List<Racer> racerList = new List<Racer>(); for (int i = 0; i < howMany; i++) { Racer racer = new Racer("Racer", i.ToString()); racerList.Add(racer); } return racerList; }
public void FinishedLap(Racer racer) { RacerData data = GetRacerData(racer); data.round++; if(data.round >= 2) { EndRace(); return; } }
public override void makeAction(Racer racer) { racer.GetComponent <Animator>().SetTrigger("Fall"); racer.GetComponent <Animator>().applyRootMotion = false; _fallDelayCreator.Delay(racer.Die, fallTime); }
public bool FindCountryPredicate(Racer racer) => racer?.Country == _country;
void Start() { racer = GetComponent <Racer>(); }
//List.ForEach() //Action 无返回类型的委托,参数是Racer类型 public static void ActionHandler(Racer obj) { Console.WriteLine("Country:{0}, LastName:{1}",obj.Country,obj.LastName); }
/// <summary> /// Racer has crossed the finish line (or has otherwise finished) /// </summary> /// <param name="racer">Racer.</param> private void FinishRacer(Racer racer) { if (!m_finishers.Contains (racer)) { m_finishers.Add (racer); racer.FinishedRace (m_finishers.Count); } }
private void OnRacerExplodes(Racer who) { // explode who.IsNotAlive(); }
public RacerData(Racer racer) { this.racer = racer; }
private void Form1_Load(object sender, EventArgs e) { List <Racer> racers = Formulal.GetChampions() as List <Racer>; ///选取来自巴西的所有世界冠军 var res = from racer in racers where racer.Country == "Brazil" orderby racer.Wins descending select racer.FirstName + " " + racer.LastName + " " + racer.Country; this.listBox1.DataSource = Enumerable.ToList <string>(res); Racer race = new Racer("Jochen", "Rindt", "Austria", 60, 6, new int[] { 1970 }, new string[] { "Lotus" }); ///找出赢得至少15场比赛的巴西和奥地利赛车手 /// res = from racer in racers where racer.Wins >= 15 && (racer.Country == "Brazil" || racer.Country == "Austria") orderby racer.Wins descending select racer.FirstName + " " + racer.LastName + " " + racer.Country; this.listBox1.DataSource = Enumerable.ToList <string>(res); ///复合from子句 res = from racer in racers from car in racer.Cars where car == "Ferrari" orderby racer.Wins descending select racer.FirstName + " " + racer.LastName + " " + racer.Country; this.listBox1.DataSource = Enumerable.ToList <string>(res); //分组 var res1 = (from racer in racers group racer by racer.Country into g select g).ToList(); string res1111 = ""; foreach (IGrouping <string, Racer> coun in res1) { res1111 += Environment.NewLine + coun.Key + ":"; int flag = 0; foreach (Racer r in coun.AsEnumerable <Racer>()) { if (flag == 0) { res1111 += string.Format("{0:20}", r.FirstName); } else { res1111 += Environment.NewLine + string.Format("{0:40}", r.FirstName); } flag++; } } this.richTextBox1.Text = res1111; //组链接 var racer11 = Formulal.GetChampionships() .SelectMany(r => new List <RacerInfo>() { new RacerInfo() { Year = r.Year, Position = 1, FirstName = r.First.Substring(0, r.First.IndexOf(" ")), LastName = r.First.Substring(r.First.IndexOf(" ") + 1), }, new RacerInfo() { Year = r.Year, Position = 2, FirstName = r.Second.Substring(0, r.Second.IndexOf(" ")), LastName = r.Second.Substring(r.Second.IndexOf(" ") + 1), }, new RacerInfo() { Year = r.Year, Position = 3, FirstName = r.Third.Substring(0, r.Third.IndexOf(" ")), LastName = r.Third.Substring(r.Third.IndexOf(" ") + 1), } }); }
public Position(Racer racer) { Racer = racer; Laps = -1; // Race starts before the finish line. Angle = 360; }
//List public static bool FindCoutryFinland(Racer racer) { if (racer == null) throw new ArgumentException("Racer Null"); return racer.Country == "Finland"; }
public void GenerationTest() { var map = new Map(9); var racer = new Racer(new HexCoordinates(0, 0, 0), 100, map); var path = racer.BuildPath(new HexCoordinates(1, 0, -1), new HexCoordinates(5, -4, -1)); }
public void calculateResults() { results = new string[Race.currentRacers.Count]; foreach (Racer racer in Race.currentRacers) if (racer.raceTiming.finalRaceTime == long.MaxValue) racer.raceTiming.finalRaceTimeString = "DNF"; if (!Race.currentRaceType.getRaceType().Equals(RaceType.PointsRace)) { //List<HighScoreEntry> tempRes = HighScore.getHighScores(MapManager.currentMap, 1); raceType = HighScoreType.PointMode; for (int i = 0; i < Race.humanRacers.Count(); i++) { long racersFastersTime = (long)(Race.humanRacers[i].raceTiming.fastestLap.TotalMilliseconds * 1000); if ( (racersFastersTime > 1 ) && racersFastersTime < time)//Needs a sanity check, as fastestLap is zero if a lap is not completed? { time = racersFastersTime; index = Race.humanRacers[i].racingControls.padIndex; } } List<HighScoreEntry> tempRes = HighScore.getHighScores(MapManager.currentMap.currentMapName, 0); // REMOVED FOR DEMO // NEEDS TO BE FIXED // TODO: CASE 71 //if(time < tempRes[9].value){ // keyboardShown = false; // if(!LiveServices.GuideIsVisible()) /*CHECK HIGHSCORE*/ // { // while( !keyboardShown ) // try // { // Guide.BeginShowKeyboardInput(index, "Player " + (index.ToString()) + " has set a new lap record", "Please enter your name", "", keyboardCallback, (object)"dontcare"); // } // catch // { // keyboardShown = true; // // create a class bool, initialize it to false, then set it to true here so you know you need to try again because it didn't work the first time, // // probably because the Guide became visible between when you checked LiveServices.GuideIsVisible() and when you called Guide.BeginShowKeyboardInput // } // //ENTER NAME AND TIME INTO HIGH SCORES // } //} } //POINTS RACE //SAVE if (Race.currentRaceType.getRaceType().Equals(RaceType.LappedRace)) { results = Race.currentRacers.OrderByDescending(r => r.raceTiming.finalRaceTime).Reverse().Select(r => r.raceTiming.getFinalTotalTime()).ToArray(); players = Race.currentRacers.OrderByDescending(r => r.raceTiming.finalRaceTime).Reverse().Select(r => r.racerID.ToString()).ToArray(); resultsCalc = true; } else if ( Race.currentRaceType.getRaceType().Equals(RaceType.EliminiationRace)) { foreach (Racer racer in Race.currentRacers) { if (racer.raceTiming.isLastToBeEliminated == false) eliminationWinner = racer; } } }
/// <summary> /// An input interface to a virtual controller which acts as an AI racer. /// </summary> /// <param name="parent"> /// The racer which this input system will be controlling. /// </param> public AiInputManager(Racer parent) { lastState = currentState = new GamePadState(); this.parent = parent; }