Difference between revisions of "Create a method to list the words available within a given hand"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
Line 1: Line 1:
 
The option "See available words with this hand." is added to the player's options in GetChoice().
 
The option "See available words with this hand." is added to the player's options in GetChoice().
  
 +
 +
<syntaxhighlight lang=Csharp>
 
private static string GetChoice()
 
private static string GetChoice()
 
         {
 
         {
Line 18: Line 20:
 
             return Choice;
 
             return Choice;
 
         }
 
         }
 +
</syntaxhighlight>
  
 
The following code is added to the choices in Have Turn:
 
The following code is added to the choices in Have Turn:
  
 +
 +
<syntaxhighlight lang=Csharp>
 
else if (Choice == "3")
 
else if (Choice == "3")
 
                 {
 
                 {
Line 33: Line 38:
 
                     }
 
                     }
 
                 }
 
                 }
 +
</syntaxhighlight>
  
 
This goes through the list of allowed words in alphabetical order and checks if the word can be made from the player's current tiles. If it can be, the word is outputted.
 
This goes through the list of allowed words in alphabetical order and checks if the word can be made from the player's current tiles. If it can be, the word is outputted.

Revision as of 15:35, 14 November 2017

The option "See available words with this hand." is added to the player's options in GetChoice().


private static string GetChoice()
        {
            string Choice;
            Console.WriteLine();
            Console.WriteLine("Either:");
            Console.WriteLine("     enter the word you would like to play OR");
            Console.WriteLine("     press 1 to display the letter values OR");
            Console.WriteLine("     press 4 to view the tile queue OR");
            Console.WriteLine("     press 7 to view your tiles again OR");
            Console.WriteLine("     press 0 to fill hand and stop the game.");
            Console.WriteLine("     press 3 to see available words with this hand.");
            Console.Write("> ");
            Choice = Console.ReadLine();
            Console.WriteLine();
            Choice = Choice.ToUpper();
            return Choice;
        }

The following code is added to the choices in Have Turn:


else if (Choice == "3")
                {
                    for (int i = 0; i < AllowedWords.Count; i++)
                    {
                        bool wordintiles = CheckWordIsInTiles(AllowedWords[i], PlayerTiles);
                        if (wordintiles == true)
                        {
                            Console.WriteLine(AllowedWords[i]);
                        }

                    }
                }

This goes through the list of allowed words in alphabetical order and checks if the word can be made from the player's current tiles. If it can be, the word is outputted.

One problem is that you can make quite a lot of words from any given hand (even if it doesn't seem like it), so this outputs so many words that by the time it's done you can no longer see the top of the list.

Another improvement you could make is for it to output the words by length or score order instead of alphabetical.