1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

Some help with a hangman program in C

Discussion in 'C' started by Z3RatuL, Mar 11, 2007.

Thread Status:
Not open for further replies.
  1. Z3RatuL

    Z3RatuL New Member

    Hey guys,

    A friend of mine wrote this code to aid me in a hangman program. Thing is he's doing his service at the army now and I can't finish it myself.

    He made it work without any problems what so ever but I would like to add 2 more functions.

    Those two functions will check to see if the user entered lower case letters (it will accept only UPPER CASE chars, no numbers) and if the word is between 4 to 20 chars...

    Here's the code so far:
    #include <stdio.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <string.h>
    /* character set */
    #define MIN_LENGTH 4
    #define MAX_LENGTH 20
    #define MAX_TRIES 3
    #define ASTERISK '*'
    /* Function declarations. */
    static int guess(const char *word, char letter, char *display);
    static void hangman(const char *word);
    static int guess(const char *word, char letter, char *display)
        int blanks, i;
        blanks = 0;
        for (i = 0; word[i] != '\0'; i++) {
            if (word[i] == letter) {
                display[i] = letter;
            if (display[i] == ASTERISK) {
        return blanks;
     * Function which plays hangman with user.
    static void hangman(const char *word)
        int count, blanks, oldblanks, len, i, count2;
        char display[MAX_LENGTH+1];
        char letter;
        len = strlen(word);
        for (i = 0; i < len; i++) {
            display[i] = ASTERISK;
        display[i] = '\0';
        count = 0;
        count2 = MAX_TRIES; /* max tries number */
        oldblanks = len;
        while ((oldblanks > 0) && (count < MAX_TRIES)) {
    		printf("You have %d tries\n", count2);
            printf("%s\n", display);
            printf("Type a letter:\n");
            scanf(" %c", &letter);
            blanks = guess(word, letter, display);
            if (oldblanks == blanks) {
                /* No new chars found, so the letter was incorrect */
            oldblanks = blanks;
        if (blanks == 0) {
            printf("YOU WON!\n");
        } else {
            printf("YOU LOST!\n");
        printf("THE WORD WAS \"%s\".\n", word);
    int main(void)
        int i;
        char word[MAX_LENGTH+1];
        /* Give the secret word. */
        printf("Type the word here:\n");
    	scanf(" %s", word);
    	/* Play hangman. */
    	return 0;
    Thanks in advance!
  2. shabbir

    shabbir Administrator Staff Member

    Duplicate of [thread=3350]Some help with a hangman program in C[/thread]. Thread closed.
Thread Status:
Not open for further replies.

Share This Page