Software & Finance





Visual C++ - Guess the Secret Word





 

Here you can find the complete source code for guessing the secret word in Visual C++ Programming Language.

 

The program will read the words from the given input file and will pick up a word and store it as a secret word. It starts with displaying the number characters as "*" and the following sequence is self explanatory.

 

Your secret word is: **********

Guess now  (To stop the program, enter #) :

Kathir

***h******

School

**********

Tech

*ech******

techno

techno****

technology

Congrats! You have guessed it correctly

 

 


Source Code


#include <iostream.h>

#include <stdio.h>

#include <math.h>

#include <conio.h>

#include <process.h>

#include <string.h>

 

int ReadLine(FILE *fp, char *data, int len)

{

    int index = 0;

    while(1)

    {

        char ch;

        if( feof(fp))

            break;

        if( fread(&ch, 1, 1, fp) < 1)

            break;

 

        if(ch == '\n')

        {

            data[index++] = '\0';

            break;

        }

        data[index++] = ch;

    }

    return index;

}

 

 

int ReadWordsFromFile(char **p)

{

    int count = 0;

    char buf[128];

    FILE *istream = fopen("words_input.txt", "r");

    if (istream == 0)

        return -1;

 

    while(1)

    {

        if( feof(istream))

            break;

        if(ReadLine(istream, buf, 128) < 0)

            break;

        p[count] = (char*) malloc(128);

        strcpy(p[count], buf);

        count++;

    }

    fclose(istream);

    return count;

}

 

void main()

{

    int count = 0;

    char *words[100];

    char *secretWord;

    int guessX;

    int numChars = -1;

    int i, j;

    int bGuessedCorrectly = 0;

 

    std::cout << "\nWelcome to Guess a Word\n";

    count = ReadWordsFromFile(words);

    if (count <= 0)

    {

          Std::cout << "\nNo words found in the file";

          return;

    }

    guessX = rand() % count;

    secretWord = words[guessX];

 

    numChars = strlen(secretWord);

 

    std::cout << "Your secret word is: ";

    for(i = 0; i < numChars; i++)

          std::cout << "*";

    std::cout << "\n";

 

    std::cout << "\nGuess now  (To stop the program, enter #) : ";

 

    while (1)

    {

          char choice[128];

           std::cin >> choice;

 

          if (choice[0] == '#')

                break;

          if (strcmp(secretWord, choice) == 0)

          {

                bGuessedCorrectly = 1;

                break;

          }

          for (i = 0; i < numChars; i++)

          {

                if (i < strlen(secretWord) &&

                      i < strlen(choice))

                {

                      if (secretWord[i] == choice[i])

                            std::cout << choice[i];

                      else

                            std::cout << "*";

                }

                else

                      std::cout << "*";

          }

          std::cout << "\n";

 

    }

    if (bGuessedCorrectly == 0)

          std::cout << "\nUnfortunately you did not guess it correctly. The secret word is: " << secretWord;

    else

          std::cout << "\nCongrats! You have guessed it correctly";

 

    for(i = 0; i < count; i++)

        free(words[i]);

}

Output


// contents of words_input.txt

computer

science

school

schooling

information

technology

 

Welcome to Guess a Word 

Your secret word is: **********

Guess now  (To stop the program, enter #) :

Kathir

***h******

School

**********

Tech

*ech******

techno

techno****

technology

Congrats! You have guessed it correctly