Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hangman in C! Write a program that will read from a random word from a text file (dictionary.txt) containing English words (one word per line).

Hangman in C!

Write a program that will read from a random word from a text file (dictionary.txt) containing English words (one word per line). Continue to ask the user for a letter until the user has either guessed all the letters in the word, or until the word H-A-N-G-M-A-N has been completely filled out, whichever comes first.

After each guess, print out the letters correctly guessed and the letters in H-A- N-G-M-A-N opened as a consequence of missed guesses.

Example Below:

In file dictionary.txt:

computer program ...

Suppose the word program was randomly selected.

Guess your next letter >> p p------

------- //where hangman should be spelled

Guess your next letter >> g

p--g--- ------- Guess your next letter >> z

>>>>>>>Incorrect<<<<<<<<<

p--g---

H------

Here is my code:

I have all this code done, but i'm unsure what I need to do to have it as the same familiar as above. If you can please help me out, and show me the output that you get. The dictionairy file is above and just a list of words.

hangman.h (Header):

#include

#include

#include

//char* means character string

void get_word(char*, char*);

int game_over(int, char*, char*);

void get_guess(char*);

void check_guess(char, int*, char*, char*);

get_word.c

#include "hangman.h"

void get_word(char filename[100], char key[100])

{

int num_words, word_num;

FILE *fp;

srand((int)time(0));

fp = fopen(filenam, "r");

fscanf(fp, "%d", &num_words);

word_num = rand() % num_words;

for(int i = 0, i <= word_num; i++) {

fgets(key, 100, fp); //fscanf(fp, "%s", key);

}

fclose(fp);

}

game_over.c

#include "hangman.h"

int game_over(int hangman, char guess_word[100], char key[100])

{

if(hangman == 7)

return 1;

else if(strcmp(key, guess_word) == 0)

return 1;

else

return 0;

}

get_guess.c

#include "hangman.h"

void get_guess(char *c) {

print("Enter a guess: ");

scanf("%c", &c);

}

check_guess.c

#include "hangman.h"

void check_guess(char guess_char, int *hangman, char guess_word[100], char key[100])

{

int found = 0;

for(int i = 0; i < strlen(key); i++)

{

if(guess_char == key[i])

{

guess_word[i] = guess_char;

found =1;

}

}

if(found = 0)

(*hangman)++;

}

print_info.c

#include "hangman.h"

void print_info(int hangman, char word[100])

{

printf("%s ", word);

printf("You have %d characters left", 7-hangman);

}

main.c

#include "hangman.h"

int main(int argc, char *argv[])

{

char key[100], guess_word[100] = " ";

int hangman = 0;

char guess_char;

if(argc == 1)

getWord("dict.txt", key);

else

get_word(argv[1], key);

strcpy(guess_word, key);

for(int i = 0; i < strlen(key); i++)

guess_word[i] = '_';

while(!game_over(hangman, guess_word, key))

{

print_info(hangman, guess_word);

get_guess(&guess_char);

check_guess(guess_char, &hangman, guess_word, key);

}

} //done

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Build It For The Real World A Database Workbook

Authors: Wilson, Susan, Hoferek, Mary J.

1st Edition

0073197599, 9780073197593

More Books

Students also viewed these Databases questions

Question

=+What is the nature of the unions in the particular country?

Answered: 1 week ago