private void HighScore() { if (!File.Exists("highscores.xml")) { try { InitHSFile(); } catch (Exception) { Cons.WriteLine(" Cannot initialize highscore.xml"); Cons.ReadLine(); Environment.Exit(0); } } Cons.Clear(); Cons.WriteAscii(" Highscores", Color.DarkOrange); Cons.ResetColor(); if (Highscores.Count > 0) { if (Highscores.Count > 5) { var num = Highscores.Count - 5; Highscores = Highscores.OrderByDescending(o => o.Score).ToList(); Highscores.RemoveRange(5, num); } var formatter = "{0,5} {1,5} {2,10} {3,10} {4,10}"; var header = new string[] { "No", "Score", "Moves", "Elapsed", "Date" }; var ordered = Highscores.OrderByDescending(o => o.Score).ToArray(); Console.WriteLine(); Cons.WriteLine(formatter, Color.DarkRed, header); for (int i = 0; i < ordered.Length; i++) { var values = new string[] { (i + 1).ToString() + '.', ordered[i].Score.ToString(), ordered[i].Moves.ToString(), ordered[i].Elapsed, ordered[i].Time }; Cons.WriteLine(formatter, Color.DarkOrange, values); } } else { Cons.WriteLine(" No highscore", Color.Orange); } Cons.Write(" "); Cons.ReadKey(); Cons.Clear(); MainMenu(); }