Example #1
0
        public WinRate GetWinRate(long accountId, int heroId)
        {
            var winRate = new WinRate();
            var matches = GetMatchesByAccountAndHero(accountId, heroId);

            foreach (var match in matches)
            {
                var player = match.Players.FirstOrDefault(p => p.AccountId == accountId);
                if (player == null)
                {
                    continue;
                }
                if ((player.PlayerSlot < 5 && match.RadiantWin) ||
                    (player.PlayerSlot > 5 && !match.RadiantWin))
                {
                    winRate.Wins++;
                }
                else if ((player.PlayerSlot < 5 && !match.RadiantWin) ||
                         (player.PlayerSlot > 5 && match.RadiantWin == false))
                {
                    winRate.Losses++;
                }

                if (winRate.Wins > 0 || winRate.Losses > 0)
                {
                    winRate.Rate = (int)Math.Round((double)winRate.Wins / ((double)winRate.Wins + (double)winRate.Losses) * 100);
                }
            }
            return(winRate);
        }
Example #2
0
        public Dictionary <string, string> DataToDict()
        {
            Dictionary <string, string> result = new Dictionary <string, string>
            {
                ["experience"]        = Experience.ToString(),
                ["kills"]             = Kills.ToString(),
                ["leaks"]             = Leaks.ToString(),
                ["builds"]            = Builds.ToString(),
                ["sends"]             = Sends.ToString(),
                ["earned_tangos"]     = EarnedTangos.ToString(),
                ["won_games"]         = WonGames.ToString(),
                ["won_duels"]         = WonDuels.ToString(),
                ["lost_games"]        = LostGames.ToString(),
                ["lost_duels"]        = LostDuels.ToString(),
                ["win_rate"]          = WinRate.ToString(),
                ["duel_win_rate"]     = DuelWinRate.ToString(),
                ["rating"]            = Rating.ToString(),
                ["earned_gold"]       = EarnedGold.ToString(),
                ["gold_per_minute"]   = GoldPerMinute.ToString(),
                ["tangos_per_minute"] = TangosPerMinute.ToString(),
                ["time_played"]       = TimePlayed.ToString()
            };

            // foreach (var data in FractionDatas) {
            //     result[KilledPrefix + data.FractionName] = data.Killed.ToString();
            //     result[PlayedPrefix + data.FractionName] = data.Played.ToString();
            // }
            foreach (var pair in PlayedFractions)
            {
                result[pair.Key] = pair.Value.ToString();
            }
            // foreach (var pair in FractionKills)
            //     result[pair.Key] = pair.Value.ToString();
            return(result);
        }
Example #3
0
    void CheckWins()
    {
        float winValue = 0f;

        foreach (var condition in _conditions)
        {
            List <SlotItem> result    = new List <SlotItem>();
            List <SlotItem> totaItems = new List <SlotItem>();

            for (int i = 0; i < _rowCount; i++)
            {
                for (int j = 0; j < _slotsCount; j++)
                {
                    totaItems.Add(_slots[j].slot.Content[i]);
                }
            }

            for (int i = 0; i < condition._conditions.Length; i++)
            {
                if (condition._conditions[i] == true)
                {
                    result.Add(totaItems[i]);
                }
            }

            var ranking = (from item in result
                           group item by item.id into r
                           orderby r.Count() descending
                           select new { item = r.Key, count = r.Count() }).ToArray();

            WinRate finalRate = null;

            foreach (var rate in condition._winRate)
            {
                if (rate.count <= ranking[0].count && (finalRate == null || rate.count > finalRate.count))
                {
                    finalRate = rate;
                }
            }

            if (finalRate != null)
            {
                var selectedItem = _betDropdown.value;
                int bet          = int.Parse(_betDropdown.options[selectedItem].text);

                Debug.LogFormat("win {1}: {0}", (bet * finalRate.rate), ranking[0].item);
                winValue += bet * finalRate.rate;
            }
        }

        Debug.Log("total: " + winValue);
        User.instance.money += winValue;
    }
Example #4
0
    private void Awake()
    {
        WinConditions initCondition = new WinConditions();

        initCondition._conditions = new System.Collections.BitArray(new bool[] { false, false, false, false, false,
                                                                                 true, true, true, true, true,
                                                                                 false, false, false, false, false });
        WinRate rate = new WinRate();

        rate.count = 3;
        rate.rate  = 1.5f;
        initCondition._winRate.Add(rate);
        _conditions.Add(initCondition);
    }
Example #5
0
 public override string ToString()
 {
     base.ToString();
     winners.Name = Name + " Winners";
     losers.Name  = Name + " Losers";
     return(base.ToString() +
            winners.Count.ToString("N0") + " winners. " +
            losers.Count.ToString("N0") + " losers. " +
            WinRate.ToString("P2") + " win ratio. " +
            ProfitFactor.ToString("N2") + " profit factor.\n" +
            Expectancy.ToString("N2") + " expectancy.\n" +
            winners.ToString() +
            losers.ToString());
 }
Example #6
0
    public void AddRate()
    {
        RateItemView item = Instantiate(_rateItem, _rateContainer);
        WinRate      rate = new WinRate();

        rate.count = 3;
        rate.rate  = 1.5f;

        item.rateItem = rate;
        conditions._winRate.Add(rate);

        item.OnDelete += OnDeleteRateHandler;
        item.gameObject.SetActive(true);
    }
Example #7
0
 /// <summary>
 /// 字符串
 /// </summary>
 /// <returns></returns>
 public override string ToString()
 {
     return("胜率=" + WinRate.ToString("F2") + "(" + WinCount + "/" + Count + ")" + ",盈利=" + Profit.ToString("F2") + ",持仓天数(平均/最长)=" + PositionDaysAverage + "/" + PositionDaysMax);
 }
Example #8
0
        /*
         * //public static Node Load(string path)
         * //{
         * //    var text = File.ReadAllText(path, Encoding.UTF8);
         * //    var node = JsonConvert.DeserializeObject<Node>(text);
         * //    Visit(node, (current, child) => child.parent = current);
         *
         * //    return node;
         * //}
         *
         * public Node Search(int b)
         * {
         *  return Search(this, b);
         * }
         *
         * private Node Search(Node current, int b)
         * {
         *  if (current.Bits == b)
         *  {
         *      return current;
         *  }
         *
         *  foreach (var child in current.Children)
         *  {
         *      var node = Search(child, b);
         *
         *      if (node != null)
         *      {
         *          return node;
         *      }
         *  }
         *
         *  return null;
         * }
         *
         * public void Visit(Action<Node, Node> action)
         * {
         *  Visit(this, action);
         * }
         *
         * private static void Visit(Node current, Action<Node, Node> action)
         * {
         *  foreach (var child in current.Children)
         *  {
         *      action(current, child);
         *      Visit(child, action);
         *  }
         * }
         *
         * //public void Save(string path)
         * //{
         * //    var text = JsonConvert.SerializeObject(this);
         * //    File.WriteAllText(path, text, Encoding.UTF8);
         * //}
         */

        public override string ToString()
        {
            if (Parent == null)
            {
                return("Root Node");
            }

            return($"{SeqText} p{Player}'s move: {Action} Vi/Va[b]: {Visits}/{Values[0]} Vi/Va[w]: {Visits}/{Values[1]} ucb1: {UCB1.ToString("f4")}, win%: {WinRate.ToString("p2")}, score: {Score}, depth: {Depth} [{Bits?.Draw()}] ");
        }
Example #9
0
 private void OnDeleteRateHandler(WinRate rate)
 {
     conditions._winRate.Remove(rate);
 }
Example #10
0
 private void UpdateRates()
 {
     LblChangeWin.Content   = "Change Win:" + ChangeWinRate.ToString("F5");
     LblUnchangeWin.Content = "Unchange Win:" + UnchangeWinRate.ToString("F5");
     LblWin.Content         = "Win Rate:" + WinRate.ToString("F5");
 }