首页 > 代码库 > uva 489 Hangman Judge

uva 489 Hangman Judge

大意:
电脑想个单词,玩家来猜。
玩家输入一个个字母,若答案里有这个字母,则显示该单词中所有该字母。
最终目标是显示答案所有字母。
猜错7次,死;


注意特殊条件:
1.玩家不断重复错误的字母,只算一次猜错。
2.如果答案是ans,读入了ansjklzxcv,这种情况算win的。虽然后面错误了7次,但游戏已经在猜出ans时提前结束了。。。

#include<iostream> #include<cstdio>#include<cstring>#include<cstdlib>using namespace std;const int maxalp=26;const int maxl=100;bool unguessed[maxalp];bool alreadygussedwrong[maxalp];int cnt;char ans[maxl],guess[maxl];int rnd;int la,lg;int ungcnt;bool lose=false;bool chickenedout=false;bool insguess=false;int main(){    while(scanf("%d",&rnd))    {        if(rnd==-1)break;        memset(unguessed,false,sizeof(unguessed));        memset(alreadygussedwrong,false,sizeof(alreadygussedwrong));        memset(ans,0,sizeof(ans));        memset(guess,0,sizeof(guess));        cnt=0;        lose=false;        chickenedout=false;        insguess=false;        ungcnt=0;                    printf("Round %d\n",rnd);        scanf("%s%s",ans,guess);        la=strlen(ans);        lg=strlen(guess);        for(int i=0;i<la;i++)        if(!unguessed[ans[i]-a])        {            unguessed[ans[i]-a]=true;            ungcnt++;        }        for(int i=0;i<lg;i++)        {            int ch=guess[i]-a;            if(unguessed[ch])            {                unguessed[ch]=false;                ungcnt--;            }            else if(!alreadygussedwrong[ch])            {                cnt++;                alreadygussedwrong[ch]=true;            }            if(!ungcnt)            {                printf("You win.\n");                insguess=true;                break;            }              if(cnt==7)            {                printf("You lose.\n");                lose=true;                break;            }        }        if(!lose&&!insguess)            for(int i=0;i<maxalp;i++)                if(unguessed[i])                {                    printf("You chickened out.\n");                    chickenedout=true;                    break;                }        if(!lose&&!chickenedout&&!insguess)            printf("You win.\n");    }    return 0;}

 

uva 489 Hangman Judge