static List<string> AnalyzeTournier(string Argument, List<Argument> ArgList, List<Search.Result> Results) { Tournier.Tournier T = new Tournier.Tournier(Results); List<Tournier.Result> ResultList = T.Analyze(); Tournier.Plotter Plotter = new Tournier.Plotter(ResultList); // Fields analyze for (int i = 0; i < ArgList.Count; i++) Plotter.Fields.Add(ArgList[i].Name); // Parse options foreach (Argument A in ArgList) { int TempValue; switch (A.Name) { case "mingames": TempValue = ParseIntArg(A.Value, 0, 1000, "mingames"); if (TempValue != -1) { Plotter.MinimalGamesCount = TempValue; Console.WriteLine(String.Format("Filter: players, who has at least {0:d} games;", TempValue)); } break; case "sort": Plotter.Sort(A.Value); break; case "sortdesc": Plotter.SortDescending(A.Value); break; } } return Plotter.GamesGraph(); }
static List<string> YakuList(string Argument, List<Argument> ArgList, List<Search.Result> Results) { string Lang = "en"; Tournier.Tournier T = new Tournier.Tournier(Results); List<Tournier.Result> ResultList = T.Analyze(); List<string> Output = new List<string>(); int[] Yaku = new int[55]; for(int j = 0; j < 55; j++) Yaku[j] = 0; // Calc yaku for (int i = 0; i < ResultList.Count; i++) { Tournier.Result R = ResultList[i]; for (int j = 0; j < 55; j++) Yaku[j] += R.Yaku[j]; } // Parse options foreach (Argument A in ArgList) { switch (A.Name) { case "lang": Lang = A.Value; break; } } // Print for (int j = 0; j < 55; j++) { if (Yaku[j] == 0) continue; string Name = Mahjong.YakuName.GetYakuName(Lang, j); string Line = String.Format("{0:s}\t{1:d}", Name, Yaku[j]); Output.Add(Line); } return Output; }