Hangman JudgeIn

原创 2013年12月06日 09:48:15

In ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each game, the answer to the puzzle is given as well as the guesses. Rules are the same as the classic game of hangman, and are given as follows:

  1. The contestant tries to solve to puzzle by guessing one letter at a time.
  2. Every time a guess is correct, all the characters in the word that match the guess will be ``turned over.'' For example, if your guess is ``o'' and the word is ``book'', then both ``o''s in the solution will be counted as ``solved.''
  3. Every time a wrong guess is made, a stroke will be added to the drawing of a hangman, which needs 7 strokes to complete. Each unique wrong guess only counts against the contestant once.

       ______   
       |  |     
       |  O     
       | /|\    
       |  |     
       | / \    
     __|_       
     |   |______
     |_________|
  4. If the drawing of the hangman is completed before the contestant has successfully guessed all the characters of the word, the contestant loses.
  5. If the contestant has guessed all the characters of the word before the drawing is complete, the contestant wins the game.
  6. If the contestant does not guess enough letters to either win or lose, the contestant chickens out.

Your task as the ``Hangman Judge'' is to determine, for each game, whether the contestant wins, loses, or fails to finish a game.

Input

Your program will be given a series of inputs regarding the status of a game. All input will be in lower case. The first line of each section will contain a number to indicate which round of the game is being played; the next line will be the solution to the puzzle; the last line is a sequence of the guesses made by the contestant. A round number of -1 would indicate the end of all games (and input).

Output

The output of your program is to indicate which round of the game the contestant is currently playing as well as the result of the game. There are three possible results:

You win.
You lose.
You chickened out.

Sample Input

1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1

Sample Output

Round 1
You win.
Round 2
You chickened out.
Round 3
You lose.
#include <stdio.h>
#include <string.h>
int jishu(char st[], int n);/*标准答案中不重复字母的个数*/
char s1[100000];
char s2[100000];
int main()
{
    int x, i, k1, k2, j, k, h, y, sh1, sh2, z;
    while(scanf("%d", &i)!=EOF)
    {
        if(i == -1) break;
        sh1 = 0;/*相同字母的计数器*/
        sh2 = 0;/*猜错了的字母计数器*/
        getchar();
        scanf("%s %s",s1, s2);
        k1 = strlen(s1);
        k2 = strlen(s2);
        z = jishu(s1, k1);
        for(j = 0; j < k2; j++)/*从选手答案第一个字母开始循环*/
        {
            x = 0;
            for(k = 0; k < j; k++) /*选手答案中字母是否重复*/
            {
                if(s2[j] == s2[k])
                {
                    x = 1;
                    break;
                }
            }
            if(x == 0)/*如果该字母没有重复*/
            {
                y = 0;
                for(h = 0; h < k1; h++)/*判断与标准答案的字母是否一样*/
                {
                    if(s2[j] == s1[h])/*如果遇到一样的字母*/
                    {
                        y = 1;
                        break;
                    }
                }
                if(y == 1)/*如果一样*/
                    {
                            sh1++;
                            if(sh1 == z)
                                break;
                    }
                else
                    {
                        sh2++;
                        if(sh2 == 7)
                            break;
                    }
            }
        }
        if(sh2 >= 7)/*如果猜错字母的个数大于等于7*/
            printf("Round %d\nYou lose.\n", i);
        else if(sh1 == z)/*如果猜对字母的个数与标准答案的个数相等,说明获胜*/
            printf("Round %d\nYou win.\n", i);
        else/*如果猜对的不够猜错的也不够*/
            printf("Round %d\nYou chickened out.\n", i);
    }
    return 0;
}
int jishu(char st[], int n)/*标准答案中不重复字母的个数*/
{
    int x, y = 0, i, j;
    for(i = 0; i < n; i++)
    {
        x = 0;
        for(j = 0; j < i; j++)
        {
            if(st[j] == st[i])
            {
                x = 1;
                break;
            }
        }
        if(x == 0)
        {
            y++;
        }


    }
    return y;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

UVA 489 - Hangman Judge

Hangman Judge In ``Hangman Judge,'' you are to write a program that judges a series of Hangman ga...

Hangman游戏用单词库

  • 2016年10月30日 09:19
  • 465KB
  • 下载

python 小游戏 hangman

  • 2012年11月08日 15:57
  • 11KB
  • 下载

JAVA图形界面三星题之Hangman

代码如下: package com.ytu.lc; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import ...

Hangman game

  • 2014年06月14日 15:16
  • 975KB
  • 下载

uva489 Hangman Judge

Hangman Judge  In ``Hangman Judge,'' you are to write a program that judges a series of H...

C语言进阶(HangMan游戏)

  • 2016年03月18日 11:31
  • 54KB
  • 下载

Hangman破解

  • 2016年10月30日 09:13
  • 4KB
  • 下载

Python项目(一)Hangman游戏实现与破解

摘要:本篇博客将介绍Hangman游戏的规则,Python实现以及该游戏的破解玩法。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hangman JudgeIn
举报原因:
原因补充:

(最多只允许输入30个字)