public static void InitiateMatch(List <Team> teams, int requiredScore, int overs) { var matchStat = new MatchStats(teams, requiredScore, overs * 6); var matchSimulator = new MatchSimulator(matchStat); matchSimulator.StartMatch(); }
private Task SimulateRound() { return(Task.Factory.StartNew(() => { foreach (var simulatedMatch in _matches.Where(x => x.IsSimulated && !x.IsFinished)) { var result = MatchSimulator.Simulate( simulatedMatch.Player1.Deck, simulatedMatch.Player2.Deck, maxTurnsPerGame: 20, maxSearchDepth: 10, maxTargetsCount: 1); lock (_resultsLock) { simulatedMatch.SetMatchResults(result.Deck1WinCount, result.Deck2WinCount); simulatedMatch.IsFinished = true; } Ui.Publisher.Publish(new TournamentMatchFinished { Match = simulatedMatch }); if ((Ui.Match != null && Ui.Match.WasStopped) || _shouldStop) { _shouldStop = true; break; } } }, TaskCreationOptions.LongRunning)); }
// Start by initializing variables private void Awake() { m_health = m_maxHealth; m_globals = GameObject.FindGameObjectWithTag("globals").GetComponent <StaticGlobals>(); if (m_globals == null) { Debug.LogError("No globals gameobject was found."); } m_collider = GetComponent <Collider>(); if (m_collider == null) { Debug.LogError("Missing collider on shooter agent."); } m_bulletPrefab = Resources.Load("bullet") as GameObject; if (m_bulletPrefab == null) { Debug.LogError("No bullet prefab was found in shooter agent."); } m_navAgent = GetComponent <NavMeshAgent>(); if (m_navAgent == null) { Debug.LogError("No navmesh agent found on agent."); } m_simulator = GameObject.FindGameObjectWithTag("matchSimulator").GetComponent <MatchSimulator>(); if (m_simulator == null) { Debug.LogError("No MatchSimulator object was found in ShooterAgent"); } }
public MatchSimulatorTests() { var loggerMock = new Mock <ILogger <MatchSimulator> >(); var matchEventServiceMock = new Mock <IMatchEventService>(); matchEventServiceMock.Setup(x => x.GetEvents()).Returns(new List <Event> { new Event("foo", EventTypes.Other, 1) }); _target = new MatchSimulator(loggerMock.Object, matchEventServiceMock.Object); }
//[Fact] public void Simulate() { var deck1 = GetDeck("deck1.dec"); var deck2 = GetDeck("deck2.dec"); var result = MatchSimulator.Simulate(deck1, deck2, maxTurnsPerGame: 25, maxSearchDepth: 12, maxTargetsCount: 2); Console.WriteLine(@"{0} vs {1}", deck1, deck2); Console.WriteLine(@"{0} win count: {1}.", deck1, result.Deck1WinCount); Console.WriteLine(@"{0} win count: {1}.", deck2, result.Deck2WinCount); Console.WriteLine(@"Match duration: {0}.", result.Duration); Console.WriteLine(@"Turn count: {0}.", result.TotalTurnCount); Console.WriteLine(@"Total search count: {0}.", result.TotalSearchCount); Console.WriteLine(@"Max search time: {0}.", result.MaxSearchTime); Assert.True(result.Deck1WinCount + result.Deck2WinCount >= 2); }
// Make sure that common GA functions are at lowest protected, not private. protected void Awake() { feedbackText = GameObject.FindGameObjectWithTag("FeedbackText").GetComponent <FeedbackText>(); if (feedbackText == null) { Debug.LogError("No FeedbackText found in GeneticAlgorithm"); } // Initialize values m_simulator = GameObject.FindGameObjectWithTag("matchSimulator").GetComponent <MatchSimulator>(); if (m_simulator != null) { m_simulator.MatchOver += MatchSessionOver; } else { Debug.LogError("No matchsimulator was found in GeneticAlgorithm"); } buttonCanvas = GameObject.FindGameObjectWithTag("ButtonCanvas"); if (buttonCanvas == null) { Debug.LogError("No gameobject with tag ButtonCanvas was found"); } if (generationField == null) { Debug.LogError("No Field for generation input was found"); } else { generationField.text = generations.ToString(); } if (tourneyContestents > populationSize) { tourneyContestents = populationSize; } }
// // GET: /PouleSetup/EasterEgg/ public IActionResult SimulateMatchExample(int homeLevel = 80, int awayLevel = 80, int times = 1000) { int homeWins = 0, awayWins = 0, draws = 0; Club testClub1 = new Club() { Name = "HomeClub", Powerlevel = homeLevel }; Club testClub2 = new Club() { Name = "AwayClub", Powerlevel = awayLevel }; for (int i = 0; i < times; i++) { Match simulatedMatch = MatchSimulator.SimulateMatch(testClub1, testClub2); if (simulatedMatch.MatchResult == MatchResult.Home) { homeWins++; } else if (simulatedMatch.MatchResult == MatchResult.Away) { awayWins++; } else { draws++; } ViewData[$"Match{i}"] = HtmlEncoder.Default.Encode($"Match simulated: {simulatedMatch.HomeClub.Name} vs. {simulatedMatch.AwayClub.Name}, Final score is: {simulatedMatch.HomeGoals}-{simulatedMatch.AwayGoals}"); } ViewData["HomeWins"] = homeWins; ViewData["AwayWins"] = awayWins; ViewData["Draws"] = draws; ViewData["Times"] = times; return(View()); }
private void Awake() { m_simulator = GameObject.FindGameObjectWithTag("matchSimulator").GetComponent <MatchSimulator>(); if (m_simulator == null) { Debug.LogError("No matchsimulator found in ButtonBattle"); } if (m_simulator != null) { m_simulator.MatchOver += MatchBattleOver; } m_buttonCanvas = GameObject.FindGameObjectWithTag("ButtonCanvas"); if (m_buttonCanvas == null) { Debug.LogError("No gameobject with tag ButtonCanvas was found"); } m_feedbackText = GameObject.FindGameObjectWithTag("FeedbackText").GetComponent <FeedbackText>(); if (m_feedbackText == null) { Debug.LogError("No FeedbackText could be found in ButtonBattle"); } }
public MatchRunner() { m_Simulator = new MatchSimulator(); }
public void Init() { m_Simulator = new MatchSimulator(); }
public void DetermineWinnerGoalCap_InputShouldMatchResult(int winnerPowerLevel, int loserPowerLevel, int expectedResult) { var result = MatchSimulator.DetermineWinnerGoalCap(winnerPowerLevel, loserPowerLevel); Assert.Equal(expectedResult, result); }
public void GetWinChance_InputShouldMatchResult(int yourPowerlevel, int opponentsPowerLevel, int baseWinChance, int expectedResult) { var result = MatchSimulator.GetWinChance(yourPowerlevel, opponentsPowerLevel, baseWinChance); Assert.Equal(expectedResult, result); }
private Player MapPlayer(MatchSimulator.Domain.Player player) { return allPlayers.Single(p => p.Id == player.Id); }