Sunday, February 27, 2011

489 - Hangman Judge


#include<iostream>
#include<cstdlib>
using namespace std;
void removere(char[]);
int instr(char[],char);
int main()
{
    int level,i,k,wa;
    char guess[200],sol[100];
    //freopen("in.txt","r",stdin);
    while(cin>>level&&level!=-1)
    {
        wa=0,k=0;
        cin>>sol;

        //REMOVE REPEATED CHARACTER FROM SOLUTION
        removere(sol);
        cin>>guess;

        //REMOVE REAPETED CHARACTER FROM GUESS
        removere(guess);
        for(i=0;sol[i];i++)
            if(sol[i]!=' ')k++;
        cout<<"Round "<<level<<endl;
        for(i=0;guess[i];i++)
        {
            if(guess[i]!=' ')
                if(!instr(sol,guess[i]))
                    wa++;
                else
                    k--;
            if(k==0)
            {
                //IF ALL CHARACTERS ARE SOLVED
                cout<<"You win.\n";
                goto BREAK;
            }
            if(wa>=7)
            {
                //IF 7 OR MORE WRONG ASSUMPTION ARE MADE
                cout<<"You lose.\n";
                goto BREAK;
            }
        }
        cout<<"You chickened out.\n";
BREAK:
        continue;
    }
    exit(0);
}


//REMOVE REPEATED ELEMENTS
void removere(char str[200])
{
    int i,j;
    for(i=0;str[i];i++)
        {
            if(str[i]==' ')continue;
            for(j=i+1;str[j];j++)
                if( str[i]==str[j])
                    str[j]=' ';
        }
}


//CHECKING A CHARACTER IN A STRING
int instr(char str[200],char ch)
{
    int i,f=0;
    for(i=0;str[i];i++)
        if(str[i]==ch)
        {
            str[i]=' ';
            f=1;
        }
    return f;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.