您的位置:首页 > 其它

489 - Hangman Judge

2012-04-18 13:22 316 查看
大意:猜单词。给出一个单词(选手不可见),选手猜单词的字母,若一个单词有多个相同字母则猜中一次就显示这些字母。猜错7次为输,在此之前若把单词的所有字母都猜中则为赢,既没有赢又没有输,即放弃。多次猜错同一个字母记为猜错一次。

思路:分别用两个数组记录给定的单词和选手猜的字母。记录给定单词有效字母的个数(不重复),用一个数组标识已给定的字母。然后用猜的字母逐个比较,分别记录猜错和猜中。

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char word[1000],check[1000];
int round,i,j,flag[26],los,get,sum;
while(cin>>round&&round!=-1)
{
cout<<"Round "<<round<<endl;
cin>>word;
cin>>check;
memset(flag,0,sizeof(flag));
los=get=sum=0;
for(i=0;word[i]!='\0';i++)
{
if(flag[word[i]-'a']==0)
{
flag[word[i]-'a']=1;
sum++;
}
}
for(i=0;check[i]!='\0';i++)
{
if(flag[check[i]-'a']==0)
{
flag[check[i]-'a']=-1;
los++;
}
else
{
if(flag[check[i]-'a']==1)
{
flag[check[i]-'a']=2;
get++;
}
}
if(los==7||get==sum)
break;
}
if(los==7)
cout<<"You lose."<<endl;
else
{
if(get==sum)
cout<<"You win."<<endl;
else
cout<<"You chickened out."<<endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: