private void CreateData()
 {
     Wins.Clear();
     Wins.Add(new WinData()
     {
         Name = "X",
         Wins = 0
     });
     Wins.Add(new WinData()
     {
         Name = "O",
         Wins = 0
     });
     Wins.Add(new WinData()
     {
         Name = "Tie",
         Wins = 0
     });
     lock (collisionLock)
     {
         database.Insert(Wins[0]);
         database.Insert(Wins[1]);
         database.Insert(Wins[2]);
     }
 }
Beispiel #2
0
        public string ToString(string format, IFormatProvider formatProvider)
        {
            switch (format)
            {
            case null:
            case "N":
                return("None");

            case "F":
                return(FirstName);

            case "L":
                return(LastName);

            case "C":
                return(Country);

            case "S":
                return(Starts.ToString());

            case "W":
                return(Wins.ToString());

            case "A":
                return($"{FirstName} {LastName},{Country}; start:{Starts}, wins:{Wins}");

            default:
                throw new FormatException($"Format {format} not supproted");
            }
        }
Beispiel #3
0
        public int CompareTo(object obj)
        {
            Team t = (Team)obj;

            int ret = Points.CompareTo(t.Points);

            if (ret == 0)
            {
                ret = Wins.CompareTo(t.Wins);
            }

            if (ret == 0)
            {
                ret = aRecord[t.Number - 1];
            }

            if (ret == 0)
            {
                ret = AverageGoalsScoredPerGame.CompareTo(t.AverageGoalsScoredPerGame);
            }

            if (ret == 0)
            {
                ret = (-1) * GoalsAllowed.CompareTo(t.GoalsAllowed);
            }

            return(ret);
        }
Beispiel #4
0
        public override string ToString( )
        {
            var result = $"\n\n{V}\n\n";

            result += string.Join("\n", Wins.Select(x => $"{x.Key,16} = {x.Value}"));
            result += $"\n\n\nHeritability Mean:\n{HeritabilityMean}\n";
            result += $"\nHeritability Standard Deviation:\n{HeritabilitySd}\n";

            var max = GenerationsCount.Values.Max( );

            result += "\nGenerations Count:\n";
            var count = GenerationsCount.Values
                        .CumulativeSum( )
                        .ToList( )
                        .TakeUntil(x => x >= V.Runs)
                        .Count( );

            result += string.Join(
                "\n",
                GenerationsCount
                .Take(count)
                .Select(pair => $"{pair.Key,-3} {pair.Value,-5} " +
                        $"{new string ( '█', pair.Value * 100 / max )}"));

            return(result);
        }
Beispiel #5
0
        public string ToString(string format, IFormatProvider formatProvider)
        {
            switch (format)
            {
            case null:
            case "N":
                return(ToString());

            case "F":
                return(FirstName);

            case "L":
                return(LastName);

            case "C":
                return(Country);

            case "S":
                return(Starts.ToString());

            case "W":
                return(Wins.ToString());

            case "A":
                return(String.Format("{0} {1}, {2}; starts: {3}, wins: {4}",
                                     FirstName, LastName, Country, Starts, Wins));

            default:
                throw new FormatException(String.Format(
                                              "Format {0} not supported", format));
            }
        }
Beispiel #6
0
        public IActionResult Put(int Id, [FromBody] Wins newWins)
        {
            Wins oldWins = _context.Wins.Find(Id);

            _context.Entry(oldWins).CurrentValues.SetValues(newWins);
            _context.SaveChanges();
            return(Ok(newWins));
        }
Beispiel #7
0
 public static void OtherOperation(ToolStripItem menuItem, MainForm mainForm)
 {
     Wins.OnClipboardString(s => {
         return(Regex.Replace(s, "(?<=\\s)[0-9\\.]+", new MatchEvaluator(m => {
             return (float.Parse(m.Value) * 2).ToString();
         })));
     });
 }
Beispiel #8
0
        public IActionResult Delete(int Id)
        {
            Wins oldWins = _context.Wins.Find(Id);

            _context.Wins.Remove(oldWins);
            _context.SaveChanges();
            return(NoContent());
        }
        private void ReDraw()
        {
            if (this.Wins == null)
            {
                this.Wins = new List <PictureBox>();
                foreach (var screen in Screen.AllScreens)
                {
                    var pic = new PictureBox()
                    {
                        Image    = this.Selected.DeviceName == screen.DeviceName ? Resources.win_sel : Resources.win,
                        SizeMode = PictureBoxSizeMode.StretchImage,
                        Tag      = screen
                    };
                    pic.Click += (sender, e) =>
                    {
                        this.Selected = (Screen)((Control)sender).Tag;
                        foreach (var p in Wins)
                        {
                            p.Image = ((Screen)p.Tag).DeviceName == this.Selected.DeviceName ? Resources.win_sel : Resources.win;
                        }
                    };

                    Wins.Add(pic);
                    Canvas.Controls.Add(pic);
                }
            }

            var screens = Wins.Select(p => (Screen)p.Tag).ToArray();

            var minTop   = screens.Select(p => p.Bounds.Top).Min();
            var maxBot   = screens.Select(p => p.Bounds.Bottom).Max();
            var minLeft  = screens.Select(p => p.Bounds.Left).Min();
            var maxRight = screens.Select(p => p.Bounds.Right).Max();

            var hRate = 1d * (Canvas.Width - 20) / (maxRight - minLeft);
            var vRate = 1d * (Canvas.Height - 20) / (maxBot - minTop);

            var rate = Math.Min(hRate, vRate);

            var totalW = (maxRight - minLeft) * rate;
            var totalH = (maxBot - minTop) * rate;

            var offsetX = -(minLeft * rate) + ((Canvas.Width - totalW) / 2);
            var offsetY = -(minTop * rate) + ((Canvas.Height - totalH) / 2);

            foreach (var pic in Wins)
            {
                var screen = (Screen)pic.Tag;
                var x      = Convert.ToInt32(offsetX + (screen.Bounds.Left * rate));
                var y      = Convert.ToInt32(offsetY + (screen.Bounds.Top * rate));

                var w = Convert.ToInt32(screen.Bounds.Width * rate);
                var h = Convert.ToInt32(screen.Bounds.Height * rate);
                pic.Location = new Point(x, y);
                pic.Size     = new Size(w, h);
            }
        }
Beispiel #10
0
 void 导入文件夹ToolStripMenuItemClick(object sender, EventArgs e)
 {
     Wins.OnClipboardDirectory(dir => {
         // s\\.\\w+
         var files = Directory.GetFiles(dir).Where(
             i => Regex.IsMatch(i, "\\.(?:java|css|cs|c|h|xml|txt)$"));
         ImportFiles(files);
     });
 }
Beispiel #11
0
        private void UpdateWins()
        {
            int v = 1;

            foreach (List <string> stgList in strategyList)
            {
                v *= stgList.Count;
            }

            WinsList = new List <Wins>(v);
            int[] index = new int[strategyList.Count];
            for (int i = 0; i < v; i++)
            {
                int k = i;
                for (int j = 0; j < index.Length; j++)
                {
                    index[j] = k % strategyList[j].Count;
                    k       /= strategyList[j].Count;
                }

                StringBuilder _key = new StringBuilder();
                for (int j = 0; j < strategyList.Count; j++)
                {
                    if (j > 0)
                    {
                        _key.Append(", ");
                    }
                    _key.Append(strategyList[j][index[j]]);
                }
                string key = _key.ToString();

                if (!winsDict.ContainsKey(key))
                {
                    Wins w = new Wins();
                    w.Key = key;
                    for (int j = 0; j < strategyList.Count; j++)
                    {
                        w[j] = 0;
                    }
                    winsDict.Add(key, w);
                }
                WinsList.Add(winsDict[key]);
            }

            module.wins.DataSource            = WinsList;
            module.wins.Columns[0].HeaderText = Properties.Resources.AlgorithmResampling;
            for (int i = 0; i < strategyList.Count; i++)
            {
                module.wins.Columns[i + 1].HeaderText = Properties.Resources._1 + " " + (i + 1);
                module.wins.Columns[i + 1].Visible    = true;
            }
            for (int i = strategyList.Count + 1; i < module.wins.Columns.Count; i++)
            {
                module.wins.Columns[i].Visible = false;
            }
        }
Beispiel #12
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine(Wins.ToString());
            sb.AppendLine(Losses.ToString());
            sb.Append(BigBlindHands);
            sb.Append(SmallBlindHands);
            return(sb.ToString());
        }
        public void AddWin(string name)
        {
            WinData d = Wins.FirstOrDefault(x => x.Name == name);

            d.Wins++;

            lock (collisionLock)
            {
                database.Update(d);
            }
        }
Beispiel #14
0
            public void AddWin()
            {
                XmlDocument doc = new XmlDocument();

                doc.Load($"./file/ranks/users/{Id}.xml");
                XmlNode root = doc.SelectSingleNode($"user/ID{Id}");

                Wins += 1;
                root["info/battles"].Attributes[0].InnerText = Wins.ToString();
                doc.Save($"./file/ranks/users/{Id}.xml");
            }
Beispiel #15
0
 void 代码ToolStripMenuItem1Click(object sender, EventArgs e)
 {
     Wins.OnClipboardText(s => {
         if (!string.IsNullOrWhiteSpace(textBox.SelectedText))
         {
             textBox.SelectedText = "`" + textBox.SelectedText.Trim() + "`";
             return;
         }
         textBox.SelectedText = "\r\n\r\n```\r\n\r\n" + s.Trim() + "\r\n\r\n```\r\n\r\n";
     });
     //textBox.SelectedText =FormatDelegate. FormatCodeInternal(textBox.SelectedText);
 }
 public string ToJson() =>
 string.Format
 (
     "{{ \"position\": {0}, \"team\": \"{1}\", \"won\": {2}, \"drawn\": {3}, \"lost\": {4}, \"points\": {5} }}",
     Position.ToString().PadLeft(2),
     Team.PadRight(27),
     Wins.ToString().PadLeft(2),
     Draws.ToString().PadLeft(2),
     Loses.ToString().PadLeft(2),
     Points.ToString().PadLeft(2)
 )
 ;
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Score.GetHashCode();
         hashCode = hashCode * 397 ^ Wins.GetHashCode();
         hashCode = hashCode * 397 ^ Kills.GetHashCode();
         hashCode = hashCode * 397 ^ Matches.GetHashCode();
         hashCode = hashCode * 397 ^ LastModified.GetHashCode();
         return(hashCode);
     }
 }
Beispiel #18
0
        public override string ToString( )
        {
            var result = $"\n\n{V}\n\n";

            result += $"{typeof ( TIteration ).Name} with {StrategyCollection}\n\n";
            result += string.Join("\n", Wins.Select(x => $"{x.Key,16} = {x.Value}"));
            result += $"\n\n\nHeritability Mean:\n{HeritabilityMean}\n";
            result += $"\nHeritability Standard Deviation:\n{HeritabilitySd}\n";

            result += BuildHistogram( );

            return(result);
        }
Beispiel #19
0
        void 标题ToolStripMenuItemClick(object sender, EventArgs e)
        {
            Wins.OnClipboardText(s => textBox.SelectedText = "\r\n\r\n### " + s.Trim() + "\r\n\r\n");
//			var start = textBox.SelectionStart;
//
//			while (start - 1 > -1 && textBox.Text[start - 1] != '\n') {
//				start--;
//			}
//			var end = start;
//			while (end + 1 < textBox.Text.Length && textBox.Text[end + 1] == '#') {
//				end++;
//			}
//			textBox.SelectionStart = start;
//			textBox.SelectionLength = end - start;
//			textBox.SelectedText = "## ";
        }
Beispiel #20
0
        private void CalculateWinsAndLosses(HearthStatsDbContext context, Expression <Func <GameResult, bool> > filter)
        {
            var   games    = context.Games;
            float total    = games.Where(filter).Count();
            float winsC    = games.Where(filter).Count(x => x.Victory && !x.GoFirst);
            float lossesC  = games.Where(filter).Count(x => !x.Victory && !x.GoFirst);
            float winsNC   = games.Where(filter).Count(x => x.Victory && x.GoFirst);
            float lossesNC = games.Where(filter).Count(x => !x.Victory && x.GoFirst);
            var   wins     = winsC + winsNC;
            var   losses   = lossesC + lossesNC;

            WinsAndLosses.Clear();
            Wins.Clear();
            Losses.Clear();
            WithCoin.Clear();
            WithoutCoin.Clear();
            if (total <= 0)
            {
                WinsAndLosses.Add(new StatModel("Wins", 0));
                WinsAndLosses.Add(new StatModel("Losses", 0));
                Wins.Add(new StatModel("Coin", 0));
                Wins.Add(new StatModel("No coin", 0));
                Losses.Add(new StatModel("Coin", 0));
                Losses.Add(new StatModel("No coin", 0));
                WithCoin.Add(new StatModel("Losses", 0));
                WithCoin.Add(new StatModel("Losses", 0));
                WithoutCoin.Add(new StatModel("Losses", 0));
                WithoutCoin.Add(new StatModel("Losses", 0));

                return;
            }

            WinsAndLosses.Add(new StatModel(string.Format("Wins: {0}", wins), wins / total * 100));
            WinsAndLosses.Add(new StatModel(string.Format("Losses: {0}", losses), losses / total * 100));

            Wins.Add(new StatModel(string.Format("Coin: {0}", winsC), winsC / wins * 100));
            Wins.Add(new StatModel(string.Format("No coin: {0}", winsNC), winsNC / wins * 100));

            Losses.Add(new StatModel(string.Format("Coin: {0}", lossesC), lossesC / losses * 100));
            Losses.Add(new StatModel(string.Format("No coin: {0}", lossesNC), lossesNC / losses * 100));

            WithCoin.Add(new StatModel(string.Format("Wins: {0}", winsC), winsC / (winsC + lossesC) * 100));
            WithCoin.Add(new StatModel(string.Format("Losses: {0}", lossesC), lossesC / (winsC + lossesC) * 100));

            WithoutCoin.Add(new StatModel(string.Format("Wins: {0}", winsNC), winsNC / (winsNC + lossesNC) * 100));
            WithoutCoin.Add(new StatModel(string.Format("Losses: {0}", lossesNC), lossesNC / (winsNC + lossesNC) * 100));
        }
Beispiel #21
0
        public static void InsertTitles(ToolStripItem menuItem, MainForm mainForm)
        {
            var textBox = mainForm.textBox;

            //Wins.OnClipboardText(s => textBox.SelectedText = s.Split(Environment.NewLine.ToArray(), StringSplitOptions.RemoveEmptyEntries).Select(i => "### " + i.SubstringAfterLast(".")).ConcatenateLines());
//
//			Wins.OnClipboardText(s => {
//
//				var hd = new HtmlAgilityPack.HtmlDocument();
//				hd.LoadHtml(s);
//				var ls=new List<string>();
//
//				hd.DocumentNode.SelectNodes("//ul[@class='_entry-list']//a").ForEach((e,i) => {
//				                                                                        ls.Add(string.Format("- [{0}](https://devdocs.io{1})",e.InnerText,e.GetAttributeValue("href","")));
//				});
//
//				textBox.SelectedText=ls.OrderBy(i=>i).ConcatenateLines();
//
//			});


            Wins.OnClipboardText(s => {
                var hd = new HtmlAgilityPack.HtmlDocument();
                hd.LoadHtml(s);
                var ls = new List <string>();

                hd.DocumentNode.SelectNodes("//li[contains(@class,'toc-level-1')]").ForEach((e, i) => {
                    var h1 = e.SelectSingleNode("./a");
                    ls.Add(string.Empty);
                    ls.Add(string.Format("- {0}", h1.InnerText));
                    ls.Add(string.Empty);


                    var nodes = e.SelectNodes(".//li[contains(@class,'toc-level-2')]/a");
                    if (nodes != null && nodes.Any())
                    {
                        nodes.ForEach((x, j) => {
                            ls.Add(string.Format("  - {0}", System.Web.HttpUtility.HtmlDecode(x.InnerText)));
                        });
                    }
                });

                textBox.SelectedText = ls.ConcatenateLines();
            });
        }
Beispiel #22
0
 async void 测试ToolStripMenuItemClick(object sender, EventArgs e)
 {
     Wins.OnClipboardDirectory(dir => {
         var files = Directory.GetFiles(dir, "*");
         var epubs = files.Where(i => i.EndsWith(".epub"));
         var dst   = Path.Combine(dir, "EPUB");
         dst.CreateDirectoryIfNotExists();
         foreach (var element in epubs)
         {
             File.Move(element, Path.Combine(dst, element.GetFileName()));
             var f = files.First(i => !i.EndsWith(".epub") && i.GetFileNameWithoutExtension() == element.GetFileNameWithoutExtension()
                                 );
             File.Move(f, Path.Combine(dst, f.GetFileName()));
         }
     });
     //textBox.Text = await Https.GetUrlAsync(textBox.SelectedText.Trim());
     //textBox.Text+=Environment.NewLine+Https.Handshake(textBox.SelectedText).Trim();
 }
Beispiel #23
0
        public static void InsertImagesInDirectory(ToolStripItem menuItem, MainForm mainForm)
        {
            Wins.OnClipboardDirectory(dir => {
                var extensions = new [] { ".jpg" };
                var files      = Directory.GetFiles(dir)
                                 .Where(i => extensions.Any(x => x == i.GetExtension().ToLower()))
                                 .OrderBy(i => i.GetFileName());
                var ls  = new List <string>();
                var ls1 = new List <string>();


                foreach (var element in files)
                {
                    ls.Add(string.Format("![](/commodities/static/images/{0})", element.GetFileName()));
                    ls1.Add(string.Format("\"{0}\",", element.GetFileName()));
                }
                mainForm.textBox.SelectedText += ls.ConcatenateLines() + "\r\n\r\n" + ls1.ConcatenateLines();
            });
        }
Beispiel #24
0
        public static void Repeat(ToolStripItem menuItem, MainForm mainForm)
        {
            Wins.OnClipboardString(s => {
                var match = Regex.Match(s, "\\{([0-9]+) (.*?)}");
                if (!match.Success)
                {
                    return(null);
                }
                var ls = new List <string>();
                var m1 = match.Groups[1].Value;
                var m2 = match.Groups[2].Value;

                var i1 = int.Parse(m1);

                for (int i = 0; i < i1; i++)
                {
                    ls.Add(m2);
                }
                return(ls.Concatenates());
            });
        }
Beispiel #25
0
        //the html that displays the clan card used in the pop down menu's and header of searched clan
        public override string ToString()
        {
            string returnString = "<div class=\"card card-group\"> <div class=\"container-fluid d-inline-flex\"> <div class=\"col-2\"> <p><b>Name:</b>" + Name + "</p> <p><b>Tag:</b>" + Tag + "</p> <p><b>Level:</b>" + ExpLevel.ToString() + "</p>";

            if (ExpLevel == 13)
            {
                returnString += "<p><b>Star Points:</b>" + StarPoints.ToString() + "</p>";
            }

            returnString += "<p><b>Current Tropies:</b>" + Trophies.ToString() + "</p><p><b>Highest Trophies:</b>" + BestTrophies + "</p></div>";

            returnString += "<div class=\"col-2\"><p><b>All Time Wins:</b>" + Wins.ToString() + "</p><p><b>All Time Losses:</b>" + Losses.ToString() + "</p>";
            Console.WriteLine();
            returnString += "<p><b>Current Favorite Card:</b>" + CurrentFavouriteCard.Name + "</p><img class=\"text-center\" src=\"" + CurrentFavouriteCard.Url + "\" width=\"64px\" />";
            returnString += "<p><b>Cards Discovered:</b>" + CardsDiscovered.ToString() + "/" + CardsInGame.ToString() + "</p></div>";

            returnString += "<div class=\"col-3\">";
            if (Clan != null)
            {
                returnString += "<p><b>Clan Name:</b>" + Clan.Name + "</p>";
            }
            if (Clan != null)
            {
                returnString += "<p><b>Clan Tag:</b>" + ClanTag + "</p>";
            }
            else
            {
                returnString += "<h2 class=\"text-center m-2\">Not In a Clan</h2>";
            }

            returnString += "<p><b>Recent Donations:</b>" + Donations.ToString() + "</p><p><b>Recent Donations Recieved:</b>" + DonationsReceived.ToString() + "</p>";
            returnString += "<p><b>Total Donations:</b>" + TotalDonations.ToString() + "</p><p><b>Total Donations Recieved:</b>" + ClanCardsCollected.ToString() + "</p></div>";


            returnString += "<div class=\"col-5 m-0\"><div class=\"text-center\"><p><b>Current Deck</b></p> " + Deck.ToString() + "<p>Profile Updated:" + UpdateTime + "</p></div></div></div></div>";

            return(returnString);
        }
Beispiel #26
0
        void 列表ToolStripMenuItem1Click(object sender, EventArgs e)
        {
            Wins.OnClipboardText(s => textBox.SelectedText = string.Join(Environment.NewLine, s.RemoveWhiteSpaceLines().Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries).Select(i => "- " + i.Trim() + ".")));

            //Wins.OnClipboardText(s=>textBox.SelectedText=string.Join(Environment.NewLine,s.Split(Environment.NewLine.ToArray(),StringSplitOptions.RemoveEmptyEntries).Select(i=>"- "+i.Trim())));
            textBox.SelectedText += Environment.NewLine;

//			Wins.OnClipboardDirectory(dir => {
//				var sb = new StringBuilder();
//				var files = Directory.GetFiles(dir, "*.cpp");
//				sb.Append("# C++17 Standard Library ")
//					.AppendLine(Path.GetFileName(dir))
//					.AppendLine();
//				foreach (var f in files) {
//					sb.Append("## ").AppendLine(f.GetFileNameWithoutExtension()).AppendLine();
//
//					sb.Append("```").AppendLine();
//					sb.AppendLine(f.ReadAllText());
//					sb.Append("```").AppendLine().AppendLine();
//
//				}
//				textBox.Text=sb.ToString();
//			});
        }
Beispiel #27
0
        public Boxer(string firstName, string lastName, string country, string category, int wins,
                     int losses) : base(firstName, lastName, country)
        {
            Category.ValidateIfNull();
            Wins.ValidateIfNull();
            Wins.ValidateMinAndMaxNumber(0, 100);
            Losses.ValidateIfNull();
            Losses.ValidateMinAndMaxNumber(0, 100);

            BoxingCategory boxingCategory;

            if (category == "heavyweight")
            {
                boxingCategory = BoxingCategory.Heavyweight;
            }
            else if (category == "lightweight")
            {
                boxingCategory = BoxingCategory.Lightweight;
            }
            else if (category == "flyweight")
            {
                boxingCategory = BoxingCategory.Flyweight;
            }
            else if (category == "featherweight")
            {
                boxingCategory = BoxingCategory.Featherweight;
            }
            else
            {
                boxingCategory = BoxingCategory.Middleweight;
            }

            this.Category = boxingCategory;
            this.Wins     = wins;
            this.Losses   = losses;
        }
Beispiel #28
0
    }//end of score()

    private void OnGUI()
    {
        GUI.skin = layout;
        GUI.Label(new Rect(Screen.width / 2 - 150 - 12, 20, 100, 100), "" + PlayerScore1);
        GUI.Label(new Rect(Screen.width / 2 + 150 - 12, 20, 100, 100), "" + PlayerScore2);

        if (GUI.Button(new Rect(Screen.width / 2 - 40, 35, 150, 53), "RESTART"))
        {
            PlayerScore1 = 0;
            PlayerScore2 = 0;
            theBall.SendMessage("restartGame", 0.5f, SendMessageOptions.RequireReceiver);
            myAds.refreshAds();
        }

        if (PlayerScore1 == 10)
        {
            GUI.Label(new Rect(Screen.width / 2 - 150, 200, 2000, 1000), "PLAYER ONE WINS");
            theBall.SendMessage("resetBall", null, SendMessageOptions.RequireReceiver);

            if (PlayerScore1 == 10 && PlayerScore2 == 9)
            {
                Social.ReportProgress(GPGSIds.achievement_clutching_out_the_win, 100f, null);
            }

            Wins.incrementWins();
            Social.ReportProgress(GPGSIds.achievement_just_warming_up, 100f, null);
        }

        else if (PlayerScore2 == 10)
        {
            GUI.Label(new Rect(Screen.width / 2 - 150, 200, 2000, 1000), "PLAYER TWO WINS");
            theBall.SendMessage("resetBall", null, SendMessageOptions.RequireReceiver);

            Social.ReportProgress(GPGSIds.achievement_its_the_end_of_the_world, 100f, null);
        }
    }
 public override string ToString()
 {
     return(ID + "; Score: " + Score.ToString() + ", Wins: " + Wins.ToString());
 }
 public string ToLeaderboardString()
 {
     return(ToString() + ": " + Wins.ToString() + " (" + BattleWins.ToString() + "-" + BattleLosses.ToString() + ", " + ((double)BattleWins / (BattleWins + BattleLosses)).ToString("F3") + ")");
 }