Processing Code Standard
Java Code
/*******************************************
Woody Wordword likes to play Scrabble. He wants to practice
on his own, when no other players are available. His idea is
to have the computer choose a random word, then scramble up
the letters and display the result. Then he tries to guess
the original word, types his guess, and the computer tells
him whether he was correct.
********************************************/
String[] words = {"hopeful", "unhappy", "worried", "liberty",
"general", "trigger", "napkins", "showing",
"legible", "rotated", "parsing", "fiddler"
};
void setup()
{
String chosen = chooseWord();
output("The mixed up letters are: \n" + mixup(chosen));
String answer = input("Your answer");
if(answer.equalsIgnoreCase(chosen))
{ output("Well done"); }
else
{ output("No, the word was " + chosen); }
}
String chooseWord()
{
int num = (int)(Math.random()*words.length);
return words[num];
}
String mixup(String w)
{
// take individual letters and store in an array
// swapping is much easier in an array than a String
String[] letters = new String[w.length()];
for(int x = 0; x < w.length(); x=x+1)
{
letters[x] = w.substring(x,x+1);
}
// choose two random letters and swap, repeat 10 times
for(int x = 0; x < 10; x=x+1)
{
int a = (int)(Math.random()*w.length());
int b = (int)(Math.random()*w.length());
String temp = letters[a];
letters[a] = letters[b];
letters[b] = temp;
}
// concatenate letters from array back into a String
String result = "";
for(int x = 0; x < w.length(); x = x+1)
{
result = result + letters[x];
}
return result;
}
public String input(String prompt)
{ return javax.swing.JOptionPane.showInputDialog(null,prompt); }
public void output(String message)
{ javax.swing.JOptionPane.showMessageDialog(null,message); }
|
The program scrambles the letters of a word as follows:
The RANDOM positions are chosen by the Math.random( ) function. It works like this:
The scrambling algorithm works like this: