/** Vung Nguyen Section AG Brice Johnson 5-6-08 * Represents a text base game of Hangman */ import java.util.*; public class Hangman { public static void main (String[] args) { Scanner console = new Scanner(System.in); System.out.println("Let's play Hangman"); System.out.println(); String answer = "cAt"; answer = answer.toUpperCase(); String rightAnswer = checkAnswer(answer); int gamesPlayed = 1; boolean nextGame = true; while (nextGame) { intro(answer); playGame(console, answer, nextGame, rightAnswer); nextGame = newGame(console, gamesPlayed); System.out.println(); gamesPlayed++; } } //This method allow the player to guess letters as long as they missed less than 6 guesses //and if they chose to continue playing. public static String playGame (Scanner console, String answer, boolean done, String rightAnswer) { int maxGuess = 0; String numGuess = ""; String misses = ""; String guessWord =" "; while (maxGuess <=6 && done){ //allow user to guess as long as the missed guesses String guess = console.next(); //is less than 6 and if they want to keep playin guess = guess.toUpperCase(); int pos = answer.indexOf(guess); int wordLength = answer.length(); if (pos ==-1 && misses.indexOf(guess) == -1){ //keep tracks of how many missed gueses misses += guess; //and what they are maxGuess++; } if (numGuess.indexOf(guess) != -1 && maxGuess <=6) { //check if the letter System.out.print ("Already Guessed! Guess a letter: "); //has been guessed } else { System.out.println(); System.out.print("Word: "); numGuess += guess; for (int i=0; i < wordLength; i++) { if (guess.charAt(0) == answer.charAt(i)) { guessWord += answer.charAt(i); } else { } } System.out.print(guessWord+ " "); if(guessWord.equalsIgnoreCase(rightAnswer)){ System.out.println(); System.out.println("The answer was " +answer); System.out.println("You WIN!"); break; } System.out.println(); System.out.println("Misses: " + misses); System.out.print("Guess a letter: "); } if (maxGuess > 6) { //the maximum of wrong guess cant be greater than 6 System.out.println(); System.out.println("The answer was: " +answer); System.out.println("You LOSE!"); break; } } return answer; } //This is the intro to the first game being play. public static String intro(String answer) { System.out.print("Word: "); int wordLength = answer.length(); for( int i=0; i < wordLength; i++){ System.out.print("_ "); } System.out.println(); System.out.println("Misses: "); System.out.print("Guess a letter: "); return answer; } //This method ask whether the user wants to play again. //anything that begins with y is yes and for n is no. public static boolean newGame(Scanner console, int games){ System.out.print("Do you want to play again? "); String yesOrNo = console.next(); yesOrNo = yesOrNo.toLowerCase(); boolean done = false; if (yesOrNo.charAt(0) == 'y'){ int maxGuess= 0; done = true; } else if(yesOrNo.charAt(0) == 'n'){ System.out.print("You have played " + games + " game(s). Goodbye!"); done = false; } return done; } //This is use to create a string that we can compare to what the user has guesses //to see if the user has won. public static String checkAnswer (String answer) { int len = answer.length(); String rightAnswer =" "; if (answer.length() >0) { for (int i=0; i< answer.length(); i++) { rightAnswer += answer.charAt(i) + ""; } } return rightAnswer; } }