Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Nov 18th, 2013  |  syntax: None  |  size: 2.32 KB  |  views: 54  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package prog11;
  2. import prog10.BTree;
  3. import prog11.*;
  4.  
  5. import java.io.File;
  6. import java.util.Scanner;
  7.  
  8. import prog02.UserInterface;
  9. import prog02.ConsoleUI;
  10. import prog02.GUI;
  11. import java.util.Map;
  12. import java.util.TreeMap;
  13. import java.util.Arrays;
  14. import java.util.ArrayList;
  15. import prog08.Tree;
  16. public class Jumble {
  17.         /**
  18.          * Sort the letters in a word.
  19.          * @param word Input word to be sorted, like "computer".
  20.          * @return Sorted version of word, like "cemoptru".
  21.          */
  22.         public static String sort (String word) {
  23.                 char[] sorted = new char[word.length()];
  24.  
  25.                 for (int i =  0; i < word.length(); i++)
  26.                         sorted[i] = word.charAt(i);
  27.  
  28.                 Arrays.sort(sorted);
  29.  
  30.                 return new String(sorted, 0, word.length());
  31.         }
  32.  
  33.         public static void main (String[] args) {
  34.                 UserInterface ui = new GUI();
  35.                 Map<String,ArrayList<String>> map = new ChainedHashTable<String,ArrayList<String>>();
  36.  
  37.                 Scanner in = null;
  38.                 do {
  39.                         try {
  40.                                 in = new Scanner(new File(ui.getInfo("Enter word file.")));
  41.                         } catch (Exception e) {
  42.                                 System.out.println(e);
  43.                                 System.out.println("Try again.");
  44.                         }
  45.                 } while (in == null);
  46.  
  47.                 int n = 0;
  48.                 while (in.hasNextLine()) {
  49.             ArrayList<String> words = new ArrayList<String>();
  50.                         String word = in.nextLine();
  51.                         if (n++ % 1000 == 0)
  52.                                 System.out.println(word + " sorted is " + sort(word));
  53.                         if(map.get(sort(word)) == null)
  54.                         {
  55.                                 words.add(word);
  56.                                 map.put(sort(word), words);
  57.                         }
  58.                         else
  59.                                 map.get(sort(word)).add(word);
  60.                         // EXERCISE: Insert an entry for word into map.
  61.                         // What is the key?  What is the value?
  62.                 }
  63.                 String sorted;
  64.                 while (true) {
  65.                         String jumble = ui.getInfo("Enter a jumble to unjumble it or press cancel to solve for the pun.");
  66.                         if (jumble == null)
  67.                                 break;
  68.                         else
  69.                                 sorted = sort(jumble);
  70.                         // EXERCISE:  Look up the jumble in the map.
  71.                         // What key do you use?
  72.                         ArrayList<String> word = map.get(sorted);
  73.                         if (word == null)
  74.                                 ui.sendMessage("No match for " + jumble);
  75.                         else
  76.                                 ui.sendMessage(jumble + " unjumbled is " + word);
  77.                 }
  78.                 while(true){
  79.                         //SOLVE PUN
  80.                         String clue = ui.getInfo("Please enter the clue letters.");
  81.                         while(clue == null)
  82.                         {
  83.                                 ui.sendMessage("Please try again.");
  84.                                 clue = ui.getInfo("Please enter the clue letters.");
  85.                         }
  86.                         clue = sort(clue);
  87.                         break;
  88.                 }
  89.         }
  90. }