Write a program to allow a user to play the game, Hangman. DO NOT USE AN ARRAY The program will generate a random number (between 1 and 4581) to pick a word from the file - this is the word you then have to guess. Note: if the random number you generate is 42, you need the 42nd word - so loop 41 times picking up the word from the file and not doing anything with it, it is the 42nd you need. Here is how you will do this: String word: for (int k=0; k<41; k++) {word=scnr.nextLine(); }//end loop and now pick up the word you want word=scnr.nextLine() //this is the one you want The user will be allowed to guess a letter as many times as it takes - but 10 wrong guesses and they lose!! Eventually either they won or lost. In case they lost print out the answer.  Java

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Write a program to allow a user to play the game, Hangman. DO NOT USE AN ARRAY

The program will generate a random number (between 1 and 4581) to pick a word from the file - this is the word you then have to guess.

Note: if the random number you generate is 42, you need the 42nd word - so loop 41 times picking up the word from the file and not doing anything with it, it is the 42nd you need. Here is how you will do this:

String word:

for (int k=0; k<41; k++)

{word=scnr.nextLine();

}//end loop and now pick up the word you want

word=scnr.nextLine() //this is the one you want

The user will be allowed to guess a letter as many times as it takes - but 10 wrong guesses and they lose!!

Eventually either they won or lost. In case they lost print out the answer. 

Java

Expert Solution
Step 1

The code for the given problem is written below in java-

import java.io.File;

import java.io.FileNotFoundException;

import java.util.Random;

import java.util.Scanner;

 

public class Main{

   /*

   * Creating a Scanner class object which is used to get the inputs

   * entered by the user

   */

   static Scanner sc = new Scanner(System.in);

   public static void main(String[] args) throws FileNotFoundException {

       int size=0;

       char ch;

       String word,randWord = null;

       //Creating a random Class object

       Random r = new Random();

 

     

       Scanner file=new Scanner(new File("wordList.txt"));

       while(file.hasNext())

       {

           word=file.next();

           size++;

       }

       file.close();

     

while(true)

{

   int num=r.nextInt((size - 1) + 1) + 1;

 

       file=new Scanner(new File("wordList.txt"));

       for(int i=1;i<=num;i++)

       {

           randWord=file.next();

       }

     

       file.close();

     

   // calling a Method

   guessWord(randWord.toLowerCase());

   // Prompting the user to run again

   System.out.print("\nDo you Want to play again (Y/N):");

   ch = sc.next(".").charAt(0);

   if (ch == 'y' || ch == 'Y') {

   continue;

   } else {

   break;

   }

   } 

}

     

 

   //This method will ask the user to enter characters until user won or lost the game

   private static void guessWord(String string) {

   final int NO_OF_MISSES = 10;

   char ch;

   int miss = 0, flag, match = 0;

   int len = 0;

   char arr[] = new char[string.length()];

   for (int i = 0; i < string.length(); i++) {

   if ((string.charAt(i) >= 97 && string.charAt(i) <= 122) || (string.charAt(i) >= 65 && string.charAt(i) <= 90)) {

   arr[i] = '_';

   len++;

   } else {

   arr[i] = string.charAt(i);

   }

   }

   while (len != 0) {

   flag = 0;

   match = 0;

   System.out.print("Guess:");

   for (int i = 0; i < string.length(); i++) {

   System.out.print(arr[i] + " ");

   }

   System.out.print("\nPick a letter:");

   ch = sc.next(".").charAt(0);

   if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {

   if (Character.isUpperCase(ch)) {

   ch = Character.toLowerCase(ch);

   }

   } else {

   System.out.println("** Not a letter **");

   continue;

   }

   for (int i = 0; i < string.length(); i++) {

   if (string.charAt(i) == ch) {

   if(arr[i]=='_')

   {

   arr[i] = ch;

   len--;

   }

 

    

   flag = 1;

   match++;

   }

   }

   if (flag == 0) {

   System.out.println("There is no letter " + ch + ".");

   miss++;

   System.out.println("No of Chances left :"+(NO_OF_MISSES-miss));

   if (miss == NO_OF_MISSES) {

   System.out.println("You Lost the game.");

   System.out.println("The Word is :" + string);

   break;

   }

   } else {

   System.out.println("There is " + match + " letter " + ch + ".");

   }

   }

   if (len == 0)

   System.out.println("You won the game.");

   }

 

 

   }

steps

Step by step

Solved in 2 steps with 5 images

Blurred answer
Knowledge Booster
Array
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education