Beispiel #1
0
        private static async Task GetInputs(string steamId, List <List <int> > input, string matchId)
        {
            var matchDetails = await MatchAPI.GetMatchDetails(matchId);

            int        ownHeroId     = 0;
            List <int> allyHeroIds   = new List <int>();
            List <int> enemyHeroIds  = new List <int>();
            bool       isRadiant     = false;
            int        radiantOrDire = 0;

            foreach (var playerInfo in matchDetails.players)
            {
                if ((string)playerInfo.account_id == steamId)
                {
                    ownHeroId     = playerInfo.hero_id;
                    isRadiant     = playerInfo.isRadiant;
                    radiantOrDire = isRadiant ? 0 : 1;
                    break;
                }
            }
            foreach (var playerInfo in matchDetails.players)
            {
                if ((string)playerInfo.account_id != steamId)
                {
                    if (playerInfo.isRadiant == isRadiant)
                    {
                        allyHeroIds.Add((int)playerInfo.hero_id);
                    }
                    else
                    {
                        enemyHeroIds.Add((int)playerInfo.hero_id);
                    }
                }
            }
            var oneCompletePermutation = new List <int>()
            {
                ownHeroId
            };

            oneCompletePermutation.AddRange(allyHeroIds);
            oneCompletePermutation.AddRange(enemyHeroIds);
            oneCompletePermutation.Add(radiantOrDire);
            input.Add(oneCompletePermutation);
            //var allyPermutations = Permutator.Permute(allyHeroIds);
            //var enemyPermutations = Permutator.Permute(enemyHeroIds);
            //foreach (var allyPermutation in allyPermutations)
            //{
            //    foreach (var enemyPermutation in enemyPermutations)
            //    {
            //        var oneCompletePermutation = new List<int>() { ownHeroId };
            //        oneCompletePermutation.AddRange(allyPermutation);
            //        oneCompletePermutation.AddRange(enemyPermutation);
            //        oneCompletePermutation.Add(radiantOrDire);
            //        input.Add(oneCompletePermutation);
            //    }
            //}
        }
Beispiel #2
0
        private async Task SetOutputForMatch(string steamId, List <int> output, string matchId)
        {
            var matchDetails = await MatchAPI.GetMatchDetails(matchId);

            foreach (var playerInfo in matchDetails.players)
            {
                if ((string)playerInfo.account_id == steamId)
                {
                    bool win = playerInfo.isRadiant == matchDetails.radiant_win;
                    output.Add(win ? 1 : 0);
                    break;
                }
            }
        }