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); }
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); }
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; }
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); }
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()); }
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); }
/// <summary> /// 字符串 /// </summary> /// <returns></returns> public override string ToString() { return("胜率=" + WinRate.ToString("F2") + "(" + WinCount + "/" + Count + ")" + ",盈利=" + Profit.ToString("F2") + ",持仓天数(平均/最长)=" + PositionDaysAverage + "/" + PositionDaysMax); }
/* * //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()}] "); }
private void OnDeleteRateHandler(WinRate rate) { conditions._winRate.Remove(rate); }
private void UpdateRates() { LblChangeWin.Content = "Change Win:" + ChangeWinRate.ToString("F5"); LblUnchangeWin.Content = "Unchange Win:" + UnchangeWinRate.ToString("F5"); LblWin.Content = "Win Rate:" + WinRate.ToString("F5"); }