import java.util.*; public class HangMan2 { char guess; String userInputs; static Scanner scan = new Scanner(System.in); static Random rand = new Random();
// The following routine will determin if the character c
// is inside the String str. A true is returned if it is inside.
static boolean isIn(char c, String str)
{
if(str.length()==0)
return false;
for(int i=0;i<=str.length();i++)
if (c==str.charAt(i));
return true;
}
// If userInputs contains "ard" and strToGuess contains "aardvark" then
// the following routine prints out an output that looks something like:
//
// Current Status for userInpts=ard
// a a r d _ a r _
// This routine returns true if all letters were guessed, otherwise false is returned.
static boolean printCurrStatus(String strToGuess, String userInputs){
char guess = userInputs.charAt(0);
if(isIn(guess, strToGuess)==true){
strToGuess = "";
char current;
for (int i = 0; i < strToGuess.length(); i++)
{
current = strToGuess.charAt(i);
if (current == '_' || current == ' ')
{
strToGuess = strToGuess + "_";
}
else
{
strToGuess = strToGuess + current;
}
}
return true;
}
else
return false;
}
// The following routine will return a random String from the list of words:
// elephant, tiger, monkey, baboon, barbeque, giraffe, simple, zebra,
// porcupine, aardvark
static String getNextWordToGuess()
{
Random generator = new Random();
String[] array = { "aardvark","porcupine","zebra","simple","giraffe","barbeque","baboon", "monkey","tiger","elephant"};
int rnd = generator.nextInt(array.length);
return array[rnd];
//********** Fill in Details
// HINT: a switch statement can be quite useful here
}
// The following routine plays the hangman game. It calls getNextWordToGuess to
// get the word that should be guessed. It then has a loop which outputs the
// following prompt:
// Enter next letter
//
// A String named userInputs stores all letters selected already.
// Then the routine printCurrStatus is called to print out the current status of
// the guessed word. If printCurrStatus returns true, we are done.
static void playGame()
{
boolean current=false;
String word = HangMan2.getNextWordToGuess();
String userInputs;
do{
System.out.println("Hello, and welcome to Hangman!");
System.out.println("Enter next letter");
userInputs= scan.next();
current= HangMan2.printCurrStatus(word,userInputs);
}while(printCurrStatus(word, userInputs)==true);
}
//********** Fill in Details
// main will call playGame to play the hangman game.
// Then main will issue the prompt:
// Do you want to play again (y or n)
// If the answer is "y", then call playGame again, otherwise exit
public static void main(String[] args)
{
playGame();
String retry_ans;
boolean retry= true;
System.out.println("Would you like to try again?");
retry_ans = scan.next();
if(retry_ans.equalsIgnoreCase("yes"))
{
retry = true;
System.out.println("Please enter a new secret word:");
String newWord = scan.next();
HangMan2.getNextWordToGuess();
}
}
}