Code:
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define SIZE 30
#define MAXGUESS 6
void OpenFile(char word_to_guess[]);
void MatchArray(char word_to_guess[],char word_in_progress[], int *length, char guessed_letters[]);
char GetGuess();
void CheckGuess(char word_to_guess[], char word_in_progress[],char guessed_letters[], int USEDGUESS, char guessed, int *length);
void Instructions();
int StrCmp(char word_to_guess[], char word_in_progress[], int *result);
int main()
{
char word_to_guess[SIZE], word_in_progress[SIZE], guessed_letters[SIZE], guessed='a';
int length=0, USEDGUESS=0, result=0;
Instructions();
OpenFile(word_to_guess);
MatchArray(word_to_guess, word_in_progress, &length, guessed_letters);
do
{
guessed=GetGuess(guessed,guessed_letters);
CheckGuess(word_to_guess,word_in_progress,guessed_letters,USEDGUESS, guessed,&length);
result=StrCmp(word_to_guess,word_in_progress,&result);
}while(result != 1);
}
void MatchArray(char word_to_guess[],char word_in_progress[], int *length, char guessed_letters[])
{
int k;
*length = strlen(word_to_guess);
printf("\n%d\n", &length);
for(k=0; k<SIZE; k++)
{
word_in_progress[k]=0;
}
for(k=0; k<*length; k++)
{
word_in_progress[k]='*';
}
for(k=0; k<SIZE; k++)
{
guessed_letters[k]=0;
}
printf("%s\n", word_in_progress);
}
char GetGuess(char guessed, char guessed_letters[])
{
int k=0;
char guess='a';
printf("\n\nPlease input a letter to guess\n");
scanf("%c", &guess);
guessed=tolower(guess); // – takes the original letter and returns the lowercase equivalent
printf("%c\n", guessed);
return guessed;
guessed_letters[k]=guessed;
k++;
printf("%s", guessed_letters);
}
void CheckGuess(char word_to_guess[], char word_in_progress[],char guessed_letters[], int USEDGUESS, char guessed, int *length)
{
char *position;
int j, i=0,k=0, correct=0;
printf("%s\n", word_to_guess);
printf("\n\n%c\n\n", guessed);
position=strchr(word_to_guess, guessed);
printf("%d\n", position-word_to_guess+0);
if(position != NULL)
{
word_in_progress[position-word_to_guess+0]=guessed;
printf("%s\n", word_in_progress);
printf("%s\n", guessed_letters);
//guessed_letters[k]=guessed;
printf("%s\n", guessed_letters);
}
}
void Instructions()
{
printf("Welcome to the express HangMan Game\n");
printf("You will be guessing a random word selected from a secret text file\n");
printf("You have a max of 6 incorrect guesses before your game ends\n");
printf("If you manage to correctly guess the word before your 6 guesses are up you win!\n");
printf("Have fun, try to enjoy yourself!\n");
}
//void ContentsOfArray
void OpenFile(char word_to_guess[])
{
FILE *inptr;
inptr= fopen("words.txt","r"); //Words.txt opened and read for use
fscanf(inptr,"%s", word_to_guess);//get word from file
printf("%s", word_to_guess);
}
int StrCmp(char word_to_guess[], char word_in_progress[], int *result)
{
int equal=0;
equal = strcmp(word_to_guess, word_in_progress);
if(equal == 0)
{
return *result=1;
}
if(equal != 0)
{
return *result=0;
}
}