Question
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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started