标签:guess turn || 字母 包含 编号 return win define
题目:游戏规则是这样的:计算机想一个单词让你猜,你每次可以猜一个字母。 如果单词里有那个字母,所有该字母会显示出来;如果没有那个字母,则计算机会在一幅“刽子手”画上填一笔。 这幅画一共需要7笔就能完成,因此你最多只能错6次。 注意,猜一个已经猜过的字母也算错。
在本题中,你的任务是编写一个“裁判”程序,输入单词和玩家的猜测,判断玩家赢了(you win)、 输了(you lose)还是放弃了(You chickened out)。 每组数据包含3行,第1行是游戏编号(-1为输入结束标记),第2行是计算机想的单词,第3行是玩家的猜测。 后两行保证只含小写字母。
样例输入:
1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1
样例输出:
Round 1
you win
Round 2
you chickened out
Round 3
you lose
#include <iostream> #include <string> #include <cstring> using namespace std; #define max 100 int le, chance; char s[max], s2[max]; int win, lose; void guess(char ch) { int bad = 1; for (int i = 0;i < strlen(s);++i) { if (ch == s[i]) { le--; s[i] = ‘ ‘; bad = 0; } } if (bad) chance--; if (chance==0) lose = 1; if (le==0) win = 1; } int main() { int n; while (cin >> n&& n != -1&& cin>> s >> s2) { chance = 7; win = 0; lose = 0; cout << " Round " << n << endl; le = strlen(s); for (int i = 0;i < strlen(s2);++i) { guess(s2[i]); if (win || lose) break; } if (win) cout << "you win" << endl; else if (lose) cout << "you lose" << endl; else cout << "you chickened out" << endl; } return 0; }
标签:guess turn || 字母 包含 编号 return win define
原文地址:https://www.cnblogs.com/liushipeng648/p/12818740.html