/* Solution to week4 lab - hangman program */ import java.io.*; public class hangmanpic { public static void main(String[] args) throws IOException { BufferedReader keyboard = new BufferedReader (new InputStreamReader(System.in)); BufferedReader infile = new BufferedReader (new FileReader("hangwords.txt")); String head=" O ", body="|", leftHand="\\_",rightHand="_/",leftLeg="_/",rightLeg=" \\_"; String word, guess, letter,letters=""; StringBuffer guessedword; char let,choice; int bodyparts; boolean quit = false, gameover, found; int i; word = infile.readLine(); while (! quit && word != null) // start new game { System.out.println("\nchoosing secret word..."); bodyparts = 6; gameover = false; guessedword = new StringBuffer(""); // init to empty string for (i = 0; i < word.length(); i++) guessedword.append('-'); // put in _ for each letter in word while (! gameover) { System.out.println("\n Word to Guess: " + guessedword); System.out.println("(l)etter guess, "); System.out.println("(w)ord guess, "); System.out.println("(n)ew game, "); System.out.println("(q)uit program "); System.out.println("Enter your choice"); choice = (char) keyboard.read(); // read only one character keyboard.readLine(); // skip end of line character switch (choice) { case 'l': case 'L': System.out.print("letter:"); letter = keyboard.readLine(); let=letter.charAt(0); letters += letter; found = false; for (i=0; i < word.length(); i++) { if (word.charAt(i) == let) { guessedword.setCharAt(i, let); found = true; } } if (! found) { bodyparts--; System.out.println("\n uh-oh - only " + bodyparts + " body parts left \n"); switch(bodyparts) { case 5: System.out.println(head); break; case 4: System.out.println(head + "\n "+ body); break; case 3: System.out.println(head+ "\n"+leftHand+body); break; case 2: System.out.println(head+ "\n"+leftHand+body+rightHand); break; case 1: System.out.println(head+ "\n"+leftHand+body+rightHand+ "\n"+ leftLeg); break; case 0: System.out.println(head+ "\n"+leftHand+body+ rightHand+"\n"+leftLeg+rightLeg); break; } } if (bodyparts == 0) { System.out.println("you lose!"); gameover = true; } if (word.equalsIgnoreCase(guessedword.toString())) { System.out.println("\nCongratulations, you guessed it!"); gameover = true; } break; case 'w': case 'W': System.out.println("word:"); guess = keyboard.readLine(); if (guess.equalsIgnoreCase(word)) System.out.println("\nCongratulations, you guessed it!"); else System.out.println("\nWrong word, you lose!"); gameover = true; break; case 'n': case 'N': gameover = true; break; case 'q': case 'Q': gameover = true; quit = true; break; default: System.out.println("invalid menu choice"); } // switch over } // game over word = infile.readLine(); } // program over System.out.println("\nthanks for playing"); } }