Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Random;
- import java.util.Scanner;
- public class hangman {
- private int lives;
- private String[] wordsArr;
- private String wordToGuess;
- private String wordToGuess_blanks;
- public hangman(int lives, String[] wordsArr)
- {
- this.lives = lives;
- this.wordsArr = wordsArr;
- }
- public void play()
- {
- System.out.println("WELCOME TO HANGMAN!");
- wordToGuess = randWordGuess().toUpperCase();
- initializeBlanks();
- gameplay();
- }
- private void initializeBlanks()
- {
- int mid = wordToGuess.length() / 2;
- StringBuilder blanksBuilder = new StringBuilder(wordToGuess);
- for (int i = 0; i < mid; i++)
- {
- blanksBuilder.setCharAt(i, '_');
- }
- wordToGuess_blanks = blanksBuilder.toString();
- }
- private void updateBlanks(char guess)
- {
- StringBuilder updatedBlanks = new StringBuilder(wordToGuess_blanks);
- for (int i = 0; i < wordToGuess.length(); i++) {
- if (wordToGuess.charAt(i) == guess)
- updatedBlanks.setCharAt(i, guess);
- }
- wordToGuess_blanks = updatedBlanks.toString();
- }
- private void gameplay()
- {
- Scanner scanner = new Scanner(System.in);
- do {
- System.out.println("\nWord to guess: " + wordToGuess_blanks);
- System.out.print("Enter a letter: ");
- char guess = scanner.next().toUpperCase().charAt(0);
- if (wordToGuess.contains(String.valueOf(guess)))
- {
- updateBlanks(guess);
- }
- else
- {
- lives--;
- System.out.print("Incorrect guess! Lives remaining: " + lives);
- for (int i = 0; i < lives; i++)
- {
- System.out.print(" ❤");
- }
- System.out.println();
- }
- } while (!checkDead() && !wordToGuess_blanks.equals(wordToGuess));
- if (wordToGuess_blanks.equals(wordToGuess))
- System.out.println("\nCongratulations! You guessed the word: " + wordToGuess);
- else
- System.out.println("\nOut of lives! The word was: " + wordToGuess);
- }
- private boolean checkDead()
- {
- return lives <= 0;
- }
- private String randWordGuess()
- {
- Random random = new Random();
- return wordsArr[random.nextInt(0, wordsArr.length)];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment