刽子手游戏其实是一款猜单词游戏,如图4-
1所示。游戏规则是这样的:计算机想一个单词
让你猜,你每次可以猜一个字母。如果单词里有
那个字母,所有该字母会显示出来;如果没有那
个字母,则计算机会在一幅“刽子手”画上填一
笔。这幅画一共需要7笔就能完成,因此你最多
只能错6次。注意,猜一个已经猜过的字母也算
错。
在本题中,你的任务是编写一个“裁判”程
序,输入单词和玩家的猜测,判断玩家赢了
(You win.)、输了(You lose.)还是放弃了
(You chickened out.)。每组数据包含3行,第1
行是游戏编号(-1为输入结束标记),第2行是
计算机想的单词第3行是玩家的猜测。后两行
保证只含小写字母。
Sample Input
1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1
Sample Output
Round 1
You win.
Round 2
You chickened out.
Round 3
You lose.
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
int a;
char b[20] = { 0 }, c[20] = { 0 };
while (scanf("%d", &a)&&a != -1)
{
int chance = 0;
scanf("%s", b);
scanf("%s", c);
int temp = strlen(b);
for (int j = 0;c[j] != 0;j++)
{
int flag = 1;
for (int i = 0;i < temp;i++)
{
if (c[j] == b[i])
{
flag = 0;
b[i] = 0;
}
}
if (flag==1) chance++;
if (chance == 7) break;
}
int t = 0;
for (int i = 0;i < temp;i++)
{
if (b[i] != 0) {
t = 1;break;
}
}
printf("Round %d\n", a);
if (chance ==7) printf("You lose\n");
else if (t == 0&&chance<7)printf("You win\n");
else if(chance<7&&t!=0) printf("You chickened out\n");
}
return 0;
}
运行结果如下:
希望能给你带来帮助。