Exemple #1
0
        /// <summary>
        /// Internal function to create the four high score entries.
        /// </summary>
        private HighScoreEntry[] CreateEntries(
            string username,
            Score score)
        {
            // Create a list of four entries
            HighScoreEntry[] entries = new HighScoreEntry[4];

            entries[0]         = new HighScoreEntry();
            entries[0].Name    = username;
            entries[0].UtcWhen = DateTime.UtcNow;
            entries[0].Score   = score.CurrentScore;

            entries[1]         = new HighScoreEntry();
            entries[1].Name    = username;
            entries[1].UtcWhen = DateTime.UtcNow;
            entries[1].Score   = score.TotalWords;

            entries[2]         = new HighScoreEntry();
            entries[2].Name    = username;
            entries[2].UtcWhen = DateTime.UtcNow;
            entries[2].Word    = score.LongestWord;
            entries[2].Score   = score.LongestWord.Length;

            entries[3]         = new HighScoreEntry();
            entries[3].Name    = username;
            entries[3].UtcWhen = DateTime.UtcNow;
            entries[3].Word    = score.HighestWord;
            entries[3].Score   = score.HighestWordScore;

            // Return the entries
            return(entries);
        }
Exemple #2
0
        /// <summary>
        /// Returns true if this score is in the list.
        /// </summary>
        public bool IsHighScore(
            HighScoreEntry entry,
            LinkedList <HighScoreEntry> list)
        {
            // If we haven't hit the highest entries, then yes
            if (list.Count < MaximumEntries)
            {
                return(true);
            }

            // See if our score is higher than the last one
            return(list.Last.Score < entry.Score);
        }
Exemple #3
0
        /// <summary>
        /// This function adds a high score to a given list.
        /// </summary>
        private void AddHighScore(
            HighScoreEntry entry,
            LinkedList <HighScoreEntry> list)
        {
            // Don't bother if we aren't on the list
            if (!IsHighScore(entry, list))
            {
                return;
            }

            // Add it, sort it, and remove any excess
            list.Add(entry);
            list.Sort();

            while (list.Count > MaximumEntries)
            {
                list.RemoveLast();
            }
        }