SenpaiZero

Hangman

Feb 29th, 2024
1,266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4. public class hangman {
  5.     private int lives;
  6.     private String[] wordsArr;
  7.     private String wordToGuess;
  8.     private String wordToGuess_blanks;
  9.    
  10.     public hangman(int lives, String[] wordsArr)
  11.     {
  12.         this.lives = lives;
  13.         this.wordsArr = wordsArr;
  14.     }
  15.    
  16.     public void play()
  17.     {
  18.         System.out.println("WELCOME TO HANGMAN!");
  19.         wordToGuess = randWordGuess().toUpperCase();
  20.         initializeBlanks();
  21.         gameplay();
  22.     }
  23.    
  24.     private void initializeBlanks()
  25.     {
  26.         int mid = wordToGuess.length() / 2;
  27.         StringBuilder blanksBuilder = new StringBuilder(wordToGuess);
  28.  
  29.         for (int i = 0; i < mid; i++)
  30.         {
  31.             blanksBuilder.setCharAt(i, '_');
  32.         }
  33.  
  34.         wordToGuess_blanks = blanksBuilder.toString();
  35.     }
  36.  
  37.     private void updateBlanks(char guess)
  38.     {
  39.         StringBuilder updatedBlanks = new StringBuilder(wordToGuess_blanks);
  40.         for (int i = 0; i < wordToGuess.length(); i++) {
  41.             if (wordToGuess.charAt(i) == guess)
  42.                 updatedBlanks.setCharAt(i, guess);
  43.         }
  44.         wordToGuess_blanks = updatedBlanks.toString();
  45.     }
  46.     private void gameplay()
  47.     {
  48.         Scanner scanner = new Scanner(System.in);
  49.  
  50.         do {
  51.             System.out.println("\nWord to guess: " + wordToGuess_blanks);
  52.             System.out.print("Enter a letter: ");
  53.             char guess = scanner.next().toUpperCase().charAt(0);
  54.  
  55.             if (wordToGuess.contains(String.valueOf(guess)))
  56.             {
  57.                 updateBlanks(guess);
  58.             }
  59.             else
  60.             {
  61.                 lives--;
  62.                 System.out.print("Incorrect guess! Lives remaining: " + lives);
  63.                 for (int i = 0; i < lives; i++)
  64.                 {
  65.                     System.out.print(" ❤");
  66.                 }
  67.                 System.out.println();
  68.             }
  69.         } while (!checkDead() && !wordToGuess_blanks.equals(wordToGuess));
  70.  
  71.         if (wordToGuess_blanks.equals(wordToGuess))
  72.             System.out.println("\nCongratulations! You guessed the word: " + wordToGuess);
  73.          else
  74.             System.out.println("\nOut of lives! The word was: " + wordToGuess);
  75.     }
  76.    
  77.     private boolean checkDead()
  78.     {
  79.         return lives <= 0;
  80.     }
  81.    
  82.     private String randWordGuess()
  83.     {
  84.         Random random = new Random();
  85.         return wordsArr[random.nextInt(0, wordsArr.length)];
  86.     }
  87. }
  88.  
Advertisement
Add Comment
Please, Sign In to add comment