Exemple #1
0
        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();
        }
Exemple #2
0
        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));
        }
Exemple #3
0
    // 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);
        }
Exemple #6
0
    // 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;
        }
    }
Exemple #7
0
        //
        // 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());
        }
Exemple #8
0
    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");
        }
    }
Exemple #9
0
 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);
 }