5letters and then build valid English words using those letters (use each letter only once)

FINAL PROJECT Create  a  program  that  automatically  generates  words from  letters.  Your  program/project  should  be  called [YourName]-Project.java (replace [YourName] with your actual name). The program should ask the user for 5letters and then build valid English words using those letters (use each letter only once) and output them in a table format(showing per line: the word, its length, and its number of points) and organized (ordered) by one of these criteria: Criteria  Name  Meaning and Order 1  Length  Determine the length of the words (the number of letters in the word) and show the words in the decreasing order of the word length 2  Points  Determine  the  total  number  of  points  (the  sum  of  the  points/values  for  each letter from the word – see the footnote 1 ) and show the words in the decreasing order of the total number of points aa For example for the letters C, J, A, V, A, for the criterion 1, the output should be: WORD  LENGTH  POINTS JAVA  4  17 AVA  3  7 VAC  3  10 AA  2  2 For the criterion 2, the output should be: WORD  LENGTH  POINTS JAVA  4  17 VAC  3  10 AVA  3  7 AA  2  2 aa The  program  should  allow  the  user  to  select  and  change  the  criterion and select a different set of letters (i.e. play again). The program should work  for  any  combination  of  letters  but  no  other  characters.  The program  should  be  user-friendly  (have  a  good  enough interface  that allow  the  user  to  easily  use  the  program)  and  be  well-documented (follow the Assignment Code Convention, explain what each line of code does). To validate the words, your program should read thelist of valid words from  the  attached  file  WORDS.txt and  store  it  in  the  memory  in  a structure that would facilitate the search for words, letter, or groups of letters. You can use a one-dimensional array or oneor more arrays. Take a  screenshotof the editor window (showing the output) and save it  as  [YourName]-Screenshot (make  sure  you  preserve  the  image  file extension) or paste the screenshot(s) in a documentcalled [YourName]-Screenshot.  Replace  [YourName]  with  your  actual  name.  If  you  have different output you want to capture in your screenshot or the output does not fit on one screenshot, create and submit different screenshot files. Create a ZIP archive containing the project folder  and call it  [YourName]-Project.zip.  Replace [YourName] with your actual name. After you make the code work as requested above, you can try to earn extra points by making the program better (quality of code, interface, speed, memory usage, etc)  without removing any requests above. Email me with your proposal for improvements/extra thingsto do and I will let you know if you can get extra points for that and how many. SUBMIT  the [YourName]-Project.java, [YourName]-Project.zip, [YourName]-Screenshot, and all the other classes you created for the project on eCampus under the Final Project. 1 The value (number of points) for each letter are listed in the table below: Letter:  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z Value:  1  4  4  2  1  4  3  3  1  10  5  2  4  2  1  4  10  1  1  1  2  5  4  8  3  10