Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.Arrays;
  3. import java.lang.String;
  4.  
  5. public class Hangman {
  6.  
  7.     public static void main(String[] args) {
  8.  
  9.         String[] words = {"POKEMON", "PROGRAM", "RANDOM", "TEACHER", "MOBILITY", "GOOGLE", "INDIA", "COMMUNISM", "ZOOKEEPER", "XYLOPHONE", "FOUR"};
  10.  
  11.         int randomWordNumber = (int) (Math.random() * words.length);
  12.         char[] enteredLetters = new char[words[randomWordNumber].length()];
  13.         int triesCount = 0;
  14.         boolean wordIsGuessed = false;
  15.         do {
  16.         switch (enterLetter(words[randomWordNumber], enteredLetters)) {
  17.             case 0:
  18.                 triesCount++;
  19.                     if (triesCount == 10) {
  20.             System.out.println("You have run out of tries! Try again next time!");
  21.             System.exit(0);
  22.                 break;        
  23.         }
  24.             case 1:
  25.                 triesCount++;
  26.                 if (triesCount == 10) {
  27.             System.out.println("You have run out of tries! Try again next time!");
  28.             System.exit(0);
  29.         }
  30.                 break;
  31.             case 2:
  32.                 break;
  33.             case 3:
  34.                 wordIsGuessed = true;
  35.                 break;
  36.         }
  37.  
  38.         } while (! wordIsGuessed);
  39.         System.out.println("\nThe word is " + words[randomWordNumber] +
  40.             " You missed " + (triesCount -findEmptyPosition(enteredLetters)) +
  41.             " time(s)");
  42.     }
  43.    
  44.     public static int enterLetter(String word, char[] enteredLetters)    {
  45.         System.out.print("(Guess) Enter a letter in word ");
  46.         if (! printWord(word, enteredLetters))
  47.             return 3;
  48.         System.out.print(" > ");
  49.         Scanner input = new Scanner(System.in);
  50.         int emptyPosition = findEmptyPosition(enteredLetters);
  51.         char userInput = Character.toUpperCase(input.nextLine().charAt(0));
  52.         if (inEnteredLetters(userInput, enteredLetters)) {
  53.             System.out.println(userInput + " is already in the word");
  54.             return 2;
  55.         }
  56.         else if (word.contains(String.valueOf(userInput))) {
  57.             enteredLetters[emptyPosition] = userInput;
  58.             return 1;
  59.         }
  60.         else {
  61.             System.out.println(userInput + " is not in the word");
  62.             return 0;
  63.             }
  64.     }
  65.  
  66.     public static boolean printWord(String word, char[] enteredLetters) {
  67.         boolean asteriskPrinted = false;
  68.         for (int i = 0; i < word.length(); i++) {
  69.             char letter = word.charAt(i);
  70.             if (inEnteredLetters(letter, enteredLetters))
  71.                 System.out.print(letter); // If yes - print it
  72.             else {
  73.                 System.out.print('*');
  74.                 asteriskPrinted = true;
  75.             }
  76.         }
  77.         return asteriskPrinted;
  78.     }
  79.  
  80.     public static boolean inEnteredLetters(char letter, char[] enteredLetters) {
  81.         return new String(enteredLetters).contains(String.valueOf(letter));
  82.     }
  83.  
  84.     public static int findEmptyPosition(char[] enteredLetters) {
  85.         int i = 0;
  86.         while (enteredLetters[i] != '\u0000') i++;
  87.         return i;
  88.     }
  89.    
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement