刽子手游戏 C语言实现
巧妙的设置全局变量,可以解决很多问题,对于简化程序有很大的作用。
自定义可以解决具体问题的函数,可以更好的解决问题。
#include<stdio.h>
#include<string.h>
const int maxn = 100;
int left, chance;
char s[maxn], s2[maxn];
int win, lose;//设为全局变量,便于主函数和自定义函数传值
void guess(char ch)
{
int bad = 1;
for (int i = 0; i < strlen(s); i++)
if (s[i] == ch)
{
left--;
s[i] = ' ';
bad = 0;
}
if (bad) --chance;//机会错一次减去1
if (!chance) lose = 1;
if (!left) win = 1;
}
int main()
{
int rnd;
while (scanf("%d%s%s", &rnd, s, s2) == 3 && rnd != -1)
{
printf("Round %d\n", rnd);
win = lose = 0;
left = strlen(s);
chance = 7;
for (int i = 0; i < strlen(s2); i++)
{
guess(s2[i]);
if (win || lose) break;
}
if (win) printf("You win.\n");
else if (lose) printf("You lose.\n");
else printf("You chicken out.\n");
}
return 0;
}