//直接模拟就行了
#define LOCAL
#include<iostream>
#include<cstring>
using namespace std;
int round,l1,l2,i,stroke,win[101];
string s,guess;
int check_guess(char c)
{
int j,ok=0;
for(j=0;j<l1;j++)
{
if(s[j]==c)
{
win[j]=1;
ok=1;
}
}
if(!ok)
{
for(j=i-1;j>=0;j--)
{
if(guess[j]==guess[i])
return 1;
}
}
return ok;
}
int check_win()
{
int j;
for(j=0;j<l1;j++)
{
if(!win[j])
return 0;
}
return 1;
}
int main()
{
#ifdef LOCAL
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
while(cin>>round&&round!=-1)
{
cout<<"Round "<<round<<endl;
cin>>s;l1=s.size();
cin>>guess;l2=guess.size();
memset(win,0,sizeof(win));
stroke=0;
for(i=0;i<l2;i++)
{
if(check_guess(guess[i]))
{
if(check_win())
{
cout<<"You win."<<endl;
goto end;
}
}
else
{
stroke++;
if(stroke==7)
{
cout<<"You lose."<<endl;
goto end;
}
}
}
cout<<"You chickened out."<<endl;
end:;
}
return 0;
}
uvaoj 489 - Hangman Judge
最新推荐文章于 2018-11-12 17:17:00 发布
本文介绍了一个简单的猜词游戏程序实现,使用C++语言通过标准输入输出进行交互。玩家需要猜测一个隐藏的单词,每猜一个字母,程序会反馈是否正确,并更新游戏状态。若猜中所有字母则胜利,否则在限定次数内未猜中则失败。
207

被折叠的 条评论
为什么被折叠?



