/// <summary>Возвращает результат проверки совпадения зачёта с другой командой</summary> /// <param name="k">Проверяемая команда</param> /// <returns>true, если резульаты совпадают</returns> public bool SameResult(Kommando k) { return (Points == k.Points && GoalsOut - GoalsIn == k.GoalsOut - k.GoalsIn && GoalsOut == k.GoalsOut ); }
static void Main() { while (true) { Console.Write("Den första militärens kommando? "); String s = Console.ReadLine(); if (s == null) { break; } Kommando k1 = (Kommando)Enum.Parse(typeof(Kommando), s, true); Console.Write("Den andra militärens kommando? "); s = Console.ReadLine(); if (s == null) { break; } Kommando k2 = (Kommando)Enum.Parse(typeof(Kommando), s, true); if (k1 == k2) { Console.WriteLine(k1); } else { Console.Write("Den första militärens grad? "); s = Console.ReadLine(); if (s == null) { break; } Grad g1 = (Grad)Enum.Parse(typeof(Grad), s, true); Console.Write("Den andra militärens grad? "); s = Console.ReadLine(); if (s == null) { break; } Grad g2 = (Grad)Enum.Parse(typeof(Grad), s, true); if (g1 > g2) { Console.WriteLine(k1); } else if (g2 > g1) { Console.WriteLine(k2); } else { Console.WriteLine("Konflikt"); } } } }
public static string BundesLigaTable(string[] results) { if (results is null) { throw new ArgumentNullException(nameof(results)); } var kList = new List <Kommando>(); foreach (var item in results) { var score = item.Split(new char[] { ' ' }).First(); var goals = score.Split(':'); var kommands = item.Remove(0, score.Length + 1) .Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries); var k0 = new Kommando(kommands[0], goals[0], goals[1]); var k1 = new Kommando(kommands[1], goals[1], goals[0]); k0.AddToList(kList); k1.AddToList(kList); } kList = kList .OrderByDescending(k => k.Points) .ThenByDescending(k => k.GoalsOut - k.GoalsIn) .ThenByDescending(k => k.GoalsOut) .ThenBy(k => k.Name.ToLower(KataBase.Invariant)) .ToList(); var komResults = new List <string>(); for (int i = 0, number = 1; i < kList.Count; i++) { Kommando k = kList[i]; Kommando kPr = (i - 1 >= 0) ? kList[i - 1] : k; if (!k.SameResult(kPr)) { number = i + 1; } var komStr = string.Join(" ", number.ToString(CodeWars.KataBase.Invariant).PadLeft(2) + ".", k.Name.PadRight(30) + k.MatchCount.ToString(CodeWars.KataBase.Invariant), k.Wins.ToString(CodeWars.KataBase.Invariant), k.Ties.ToString(CodeWars.KataBase.Invariant), k.Loses.ToString(CodeWars.KataBase.Invariant), k.GoalsOut.ToString(CodeWars.KataBase.Invariant) + ":" + k.GoalsIn.ToString(CodeWars.KataBase.Invariant), k.Points ); komResults.Add(komStr); } return(string.Join("\n", komResults).Replace(". ", ". ")); }
/// <summary> /// Если команда не найдена в спискае, — добавляет её в список. /// Если найдена — складывает результаты этой команды. /// </summary> /// <param name="lst">Список команд</param> public void AddToList(List <Kommando> lst) { Kommando fc0 = lst.Find(e => e.Name == Name); if (fc0 == null) { lst.Add(this); } else { fc0.GoalsIn += GoalsIn; fc0.GoalsOut += GoalsOut; fc0.Loses += Loses; fc0.MatchCount += MatchCount; fc0.Ties += Ties; fc0.Wins += Wins; } }
public Operation OperationFuer(string kommando) { var befehle = new AlleBefehle().Befehle(); string badString = ""; //possible error due to encoding issues string subkommando = kommando.Replace(badString, ""); foreach (Befehl b in befehle) { foreach (string Kommando in b.Kommandos) { if (Kommando.Equals(subkommando)) { return(b.Operation); } } } return(new UnbekannteOperation()); }