Im doing a hangman project and I get a debug assertion failed and I believe it i
ID: 3908379 • Letter: I
Question
Im doing a hangman project and I get a debug assertion failed and I believe it is my while loop? PLZ HELP
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ctype.h>
int main(void) {
const int MAX_MISSES = 7;
char guess[2];
char lettersGuessed[27];
char puzzlePhrase[50];
char displayPhrase[50];
int numOfMisses;
int numOfUnsolvedCharcters;
int i;
bool guessFound;
printf("Hangman Time!! ");
printf("-------------- ");
printf("Player 1 enter puzzle phrase(up to 50 characters): ");
gets_s(puzzlePhrase, 50);
for (i = 0; i <= 25; ++i) {
printf(" ");
}
strcpy_s(displayPhrase, 27, puzzlePhrase);
for (i = 0;i < strlen(displayPhrase); ++i) {
if (displayPhrase[i] != ' ') {
displayPhrase[i] = '_';
}
}
numOfUnsolvedCharcters = strlen(puzzlePhrase);
numOfMisses = 0;
strcpy_s(lettersGuessed, 27, "");
while ((numOfUnsolvedCharcters > 0) && (numOfMisses < MAX_MISSES)) {
if (numOfMisses == 0) {
printf("----------");
printf(" ");
printf("| | ");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
else if (numOfMisses == 1) {
printf("----------");
printf(" ");
printf("| | ");
printf(" O");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
else if (numOfMisses == 2) {
printf("----------");
printf(" ");
printf("| | ");
printf(" O");
printf(" /");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
else if (numOfMisses == 3) {
printf("----------");
printf(" ");
printf("| | ");
printf(" O");
printf(" /");
printf(" ''");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
else if (numOfMisses == 4) {
printf("----------");
printf(" ");
printf("| | ");
printf(" O");
printf(" /");
printf(" ''");
printf(" |");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
else if (numOfMisses == 5) {
printf("----------");
printf(" ");
printf("| | ");
printf(" O");
printf(" /");
printf(" ''");
printf(" |");
printf(" |");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
else if (numOfMisses == 6) {
printf("----------");
printf(" ");
printf("| | ");
printf(" O");
printf(" /");
printf(" ''");
printf(" |");
printf(" |");
printf(" /");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
else if (numOfMisses == 7) {
printf("----------");
printf(" ");
printf("| | ");
printf(" O");
printf(" /");
printf(" ''");
printf(" |");
printf(" /");
printf(" ''");
for (i = 0;i < 7; i++) {
printf("| ");
}
printf("|");
printf("___________ ");
}
printf("Guesses: %s ", lettersGuessed);//May need to change this to add %c
printf("Phrase: %s ", displayPhrase); //May need to change this to add %s
printf("Guess a letter:");
gets_s(guess, 2);
while (!isalpha(guess[i])) {
gets_s(guess, 2);
}
strcat_s(lettersGuessed, 27, guess);
printf("Guesses: %s ", lettersGuessed);//May need to change this to add %c
printf("Phrase: %s ", displayPhrase); //May need to change this to add %s
printf("Guess a letter:");
guessFound = false;
for (i = 0; i < strlen(puzzlePhrase); ++i) {
if (toupper(puzzlePhrase[i]) == toupper(guess[0])) {
displayPhrase[i] = guess[0];
--numOfUnsolvedCharcters;
guessFound = true;
}
if (!guessFound) {
++numOfMisses;
}
}
}
printf("%s", displayPhrase);
if (numOfUnsolvedCharcters > 0) {
printf("NOT GOOD AT GUESSING I SEE - BETTER LUCK NEXT TIME :) ");
}
else {
printf("WINNER!!! ----- PLAY AGAIN ;) ");
}
return 0;
}