Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

import java.io.*; public class Hangman { String word,clue; int option; PrintWrit

ID: 3603576 • Letter: I

Question

import java.io.*;

public class Hangman

{

   String word,clue;

   int option;

   PrintWriter p = new PrintWriter(System.out,true);

   private void clearScreen()

   {

     System.out.print('u000C');

   }

   public void Hang1()

   {

       p.println("      _______   ");

       p.println("     |       |");

       p.println("     |");

       p.println("     |");

       p.println("     |");

       p.println("     |");

       p.println("     |");

       p.println("_____|_____ ");

   }

   public void Hang2()

   {

       p.println("      _______ ");

       p.println("     |       |");

       p.println("     |      ( )");

       p.println("     |       ");

       p.println("     |");

       p.println("     |");

       p.println("     |");

       p.println("_____|_____ ");

   }

   public void Hang3()

   {

       p.println("      _______ ");

       p.println("     |       |");

       p.println("     |      ( )");

       p.println("     |       |");

       p.println("     |       |");

       p.println("     |       |");

       p.println("     |");

       p.println("_____|_____ ");

   }

   public void Hang4()

   {

       p.println("      _______ ");

       p.println("     |       |");

       p.println("     |      ( )");

       p.println("     |       |");

       p.println("     |       |");

       p.println("     |       |");

       p.println("     |      /");

       p.println("_____|_____ ");

   }

   public void Hang5()

   {

       p.println("      _______ ");

       p.println("     |       |");

       p.println("     |      ( )");

       p.println("     |       |");

       p.println("     |       |");

       p.println("     |       |");

       p.println("     |      / \");

       p.println("_____|_____ ");

   }

   public void Hang6()

   {

       p.println("      _______ ");

       p.println("     |       |");

       p.println("     |      ( )");

       p.println("     |       |");

       p.println("     |      /|");

       p.println("     |       |");

       p.println("     |      / \");

       p.println("_____|_____ ");

   }

   public void Hang7()

   {

       p.println("      _______ ");

       p.println("     |       |");

       p.println("     |      ( )");

       p.println("     |       |");

       p.println("     |      /|\");

       p.println("     |       |");

       p.println("     |      / \");

       p.println("_____|_____ ");

   }

}

   public String[] Countries()

   {

       option = (int)(Math.random()*10);

       switch(option)

       {

           case 0:

           {

               clue = "Means 'Rich Coast' in Spanish";

               word = "C O S T A | R I C A";

           }

           break;

           case 1:

           {

               clue = "Sorry. No clue for this one";

               word = "I N D I A";

           }

           break;

           case 2:

           {

               clue = "T&T";

               word = "T R I N I D A D | A N D | T O B A G O";

           }

           break;

           case 3:

           {

               clue = "Consists of nearly one thousand islands";

               word = "S O L O M O N | I S L A N D S";

           }

           break;

           case 4:

           {

               clue = "It's capital is Riyadh";

               word = "S A U D I | A R A B I A";

           }

           break;

           case 5:

           {

               clue = "Lucky guy : You're getting a free letter : P";

               word = "T H E | P H I L I P P I N E S";

           }

           break;

           case 6:

           {

               clue = "The fastest man on Earth is from this country";

               word = "J A M A I C A";

           }

           break;

           case 7:

           {

               clue = "3 movies have been filmed using this country's name";

               word = "M A D A G A S C A R";

           }

           break;

           case 8:

           {

               clue = "Greatest world power";

               word = "U N I T E D | S T A T E S | O F | A M E R I C A";

           }

           break;

           case 9:

           {

               clue = "Lucky guy : You're getting a free letter : Y";

               word = "M A L A Y S I A";

           }

           break;

       }

       return new String[] {word,clue};

   }

   public static void main()throws IOException

   {

       Hangman obj = new Hangman();

       InputStreamReader isr = new InputStreamReader(System.in);

       BufferedReader br = new BufferedReader(isr);

       PrintWriter p = new PrintWriter(System.out,true);

       p.println("Let's play HANGMAN!                        -By Naren");

p.println();

  

       obj.clearScreen();

       String bothwordandclue[] = new String[2];

int counter = 6;

       String guessword = bothwordandclue[0];

       String wordclue = bothwordandclue[1];

       int lengthofword = (int)(Math.round(((double)guessword.length()/2)));

       int checkguess = 0;

       String a;

       String guesses[] = new String[50];

       StringBuffer guessit = new StringBuffer();

       for (int i = 0;i<lengthofword;i++)

       guessit = guessit.append("_ ");

       guessit.delete((2 * lengthofword)-1,(2 * lengthofword));

       int index = guessword.indexOf("|");

       while(index >= 0)

       {

           guessit.setCharAt(index, '|');

           index = guessword.indexOf("|", index+1);// Start searching for next "|" after this index

       }

       p.println(guessit + " The letters you have entered so far");

       do

       {

           p.println();

           if(counter == 6)

           obj.Hang1();

           else if(counter == 5)

           obj.Hang2();

           else if(counter == 4)

           obj.Hang3();

           else if(counter == 3)

           obj.Hang4();

           else if(counter == 2)

           obj.Hang5();

           else if(counter == 1)

           obj.Hang6();

           p.println();

           p.println("Enter your guess letter");

           String guessletter2 = br.readLine();

           String guessletter = guessletter2.toUpperCase();

           obj.clearScreen();

           for(int i = 0;i<lengthofword;i++)

           {

               if(guessletter.charAt(0) == guessword.charAt(2*i))

               {

                   guessit.setCharAt(2*i,guessletter.charAt(0));

                   checkguess=1;

               }                

           }

           if(checkguess == 1)

           {

               p.println("Correct Guess. You have " + counter + " incorrect guesses left The letters you have entered so far");

               p.println(guessit);

           }

           else

           {

               counter--;

               if(counter == 0)

               {

                   p.println("Wrong guess. You hanged the man :(");

                   p.println(guessit);

                   obj.Hang7();

               }

               else

               {

                   p.println("Wrong guess. You have " + counter + " incorrect guesses left The letters you have entered so far");

                   p.println(guessit);

               }

           }

           checkguess = 0;

           if(counter == 0)

           p.println(" Sorry you lost the game The correct word is " + guessword);

           a = guessit.toString();

           if(a.equals(guessword))

           {

               p.println("You guessed the word!!!!!");

               counter=0;

           }        

       }while(counter>0);

   }

}

This is the code of a hangman game, how to change it to GUI?

Explanation / Answer

import java.util.Arrays;
import java.util.Scanner;

public class Hangman{
public static void main(String[] args) {
String[] words = {"writer", "that", "program"};
  
int randomWordNumber = (int) (Math.random() * words.length);
  
char[] enteredLetters = new char[words[randomWordNumber].length()];
int triesCount = 0;
boolean wordIsGuessed = false;
do {
  
switch (enterLetter(words[randomWordNumber], enteredLetters)) {
case 0:
triesCount++;
break;
case 1:
triesCount++;
break;
case 2:
break;
case 3:
wordIsGuessed = true;
break;
}
} while (! wordIsGuessed);
System.out.println(" The word is " + words[randomWordNumber] +
" You missed " + (triesCount -findEmptyPosition(enteredLetters)) +
" time(s)");
}

/* Hint user to enter a guess letter,
returns 0 if letter entered is not in the word (counts as try),
returns 1 if letter were entered 1st time (counts as try),
returns 2 if already guessed letter was REentered,
returns 3 if all letters were guessed */
public static int enterLetter(String word, char[] enteredLetters) {
System.out.print("(Guess) Enter a letter in word ");
// If-clause is true if no asterisks were printed so
// word is successfully guessed
if (! printWord(word, enteredLetters))
return 3;
System.out.print(" > ");
Scanner input = new Scanner(System.in);
int emptyPosition = findEmptyPosition(enteredLetters);
char userInput = input.nextLine().charAt(0);
if (inEnteredLetters(userInput, enteredLetters)) {
System.out.println(userInput + " is already in the word");
return 2;
}
else if (word.contains(String.valueOf(userInput))) {
enteredLetters[emptyPosition] = userInput;
return 1;
}
else {
System.out.println(userInput + " is not in the word");
return 0;
}
}


public static boolean printWord(String word, char[] enteredLetters) {
  
boolean asteriskPrinted = false;
for (int i = 0; i < word.length(); i++) {
char letter = word.charAt(i);
  
if (inEnteredLetters(letter, enteredLetters))
System.out.print(letter);
else {
System.out.print('*');
asteriskPrinted = true;
}
}
return asteriskPrinted;
}


public static boolean inEnteredLetters(char letter, char[] enteredLetters) {
return new String(enteredLetters).contains(String.valueOf(letter));
}


public static int findEmptyPosition(char[] enteredLetters) {
int i = 0;
while (enteredLetters[i] != 'u0000') i++;
return i;
}
}

public class Hangman {
public static void main(String[] args) {
Game game = new Game("Treehouse");
Prompter prompter = new Prompter(game);
prompter.play();
}
}
import java.util.Scanner;

public class Prompter {
private Game mGame;

public Prompter(Game game) {
mGame = game;
}

public void play() {
while (mGame.getRemainingTries() > 0 && !mGame.isSolved()) {
displayProgress();
promptForGuess();
}
if (mGame.isSolved()) {
System.out.printf("Congratulations you won the game with %s remaining tries", mGame.getRemainingTries());
} else {
System.out.printf("Bummer the answer was %s", mGame.getAnswer());
}
}

public boolean promptForGuess() {
Scanner s = new Scanner(System.in);
char guess;
boolean isHit = false;

boolean isValidGuess = false;


  
while (!isValidGuess) {
System.out.println("Enter a letter: ");
String guessAsString = s.nextLine();

try {
isHit = mGame.applyGuess(guessAsString);
  
isValidGuess = true;
} catch (IllegalArgumentException iae) {
System.out.printf("%s. Please try again. ", iae.getMessage());
}
}
return isHit;
}

public void displayProgress() {
System.out.printf("You have %s tries to solve : %s ",
mGame.getRemainingTries(),
mGame.getCurrentProgress());
}
}
public class Game {
public static final int MAX_MISSES = 7;
private String mAnswer;
private String mHits;
private String mMisses;

public Game(String answer) {
mAnswer = answer;
mHits = " ";
mMisses = " ";
}


public boolean applyGuess(String letters) {
if (letters.length() == 0) {
throw new IllegalArgumentException("There aro no letters!");
}
  
return applyGuess(letters.charAt(0));
}



public boolean applyGuess(char letter) {
letter = validateGuess(letter);
boolean isHit = mAnswer.indexOf(letter) >= 0;
if (isHit) {
mHits += letter;
} else {
mMisses += letter;
}
return isHit;
}

private char validateGuess(char letter) {
if (!Character.isLetter(letter)) {
throw new IllegalArgumentException("A letter is required");
}
if (mHits.indexOf(letter) >= 0 || mMisses.indexOf(letter) >= 0) {
throw new IllegalArgumentException(letter + " is already been guessed");
}
return letter;
}

public String getCurrentProgress() {
String progress = " ";

for (char letter : mAnswer.toCharArray()) {
char display = '-';

if (mHits.indexOf(letter) >= 0) {
display = letter;
}
progress += display;
}
return progress;
}

public int getRemainingTries() {
return MAX_MISSES - mMisses.length();
}

public String getAnswer() {
return mAnswer;
}

public boolean isSolved() {
return getCurrentProgress().indexOf('-') == -1;
}
}