#include<stdio.h>
#include<string.h>
#define maxn 15 //比原写者多了几两个全局变量 ,义在取代作者在以此循环一次便计算一次数组的数量
char A[maxn],B[maxn];
int change,a,b,q;
int win,lose;
int
gues(char ch)
{
int bad=1;
for(int i=0;i<a;i++)
if(A[i]==ch) {q--; A[i]=' '; bad=0;}
if(bad) change--;
if(!change) lose=1;
if(!q) win=1;
}
int
main()
{
int rn;
scanf("%d",&rn);
while(rn!=-1&&scanf("%s %s",A,B)==2) /*原写者是scanf("%d%s%s",&rnd,s,s2)==3&&rn!=-1,
在此本博主发现必须全部输完一组数据才能结束,而不能像样例一样,读到rnd==-1时便结束*/
{
win=0,lose=0;
q=a=strlen(A),b=strlen(B);
change=7;
for(int i=0;i<b;i++)
{
gues(B[i]);
if(win||lose) break;
}
printf("Round %d\n",rn);
if(win) printf("You win\n");
else if(lose) printf("You lose\n");
else printf("You chickened out\n");
scanf("%d",&rn);
}
return 0;
}
本程序是建立在你在看算法竞赛第二版入门经典的前提下的,此程序并非写者原程序,做了些改动,聚体问题已经在程序的注释里面标出来了
本文提供了一个基于算法竞赛的猜字母游戏程序代码,并对其进行了详细的解释与修改。通过对原程序的改进,使得游戏逻辑更加清晰易懂,同时加入了一些全局变量来优化程序结构。该程序使用 C 语言实现,包含主要的游戏流程与结果判断。
1099

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



