blog/files/c/bonuses/10/hangman.h

56 lines
2.3 KiB
C
Raw Permalink Normal View History

#include <stdbool.h>
#define WORDLIST_FILENAME "words.txt"
/**
* Function detects, whether player guessed the secret word
* Based on the letters player used for guessing, this function detects,
* if it is possible to construct (and guess) the secret word from this set.
* If it is possible, function returns true. If not, returns false.
* @param secret the secret word lowercase
* @param letters_guessed the lowercase letters player already used in his guessing
* @return true, if word is guess; false otherwise.
*/
bool word_guessed(const char secret[], const char letters_guessed[]);
/**
* Function returns string representing the guessed word
* This string contains visible letters, which were guessed successfuly
* by player at their correct positions. If there are still some hidden
* letters, the character '_' will be used for their representation.
* @param secret the secret word lowercase
* @param letters_guessed the lowercase letters player already used in his guessing
* @param guessed_word the constructed string as result of this function (output parameter)
*/
void censor_word(const char secret[], const char letters_guessed[], char guessed_word[]);
/**
* Returns all letters, which were not used for guessing
* Function returns set of lowercase letters sorted in alphabetical order. This
* set will contain all letters from the alphabet, but it ommits those, which
* were already guessed.
* @param letters_guessed the lowercase letters player already used in his guessing
* @param available_letters set of lowercase not yet used letters
*/
void get_available_letters(const char letters_guessed[], char available_letters[]);
/**
* Starts interactive hangman game
*
* @param secret the secret word lowercase
*/
void hangman(const char secret[]);
/**
* Returns the random word
* Function opens the file with all the words and reads randomly one of them
* into the buffer pointed by secret. Word consists of lowercase letters.
* If there is some error with reading the file, 1 is returned.
* Don't forget to initialize the random numbers in your main() function will srand() call!
* Otherwise (everything is ok), 0 is returned.
* @param wordlist path to the file with words
* @param secret buffer, where random word will be read
* @return status code
*/
int get_word(const char *wordlist, char secret[]);