刽子手游戏

Posted liushipeng648

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刽子手游戏相关的知识,希望对你有一定的参考价值。

题目:游戏规则是这样的:计算机想一个单词让你猜,你每次可以猜一个字母。 如果单词里有那个字母,所有该字母会显示出来;如果没有那个字母,则计算机会在一幅“刽子手”画上填一笔。 这幅画一共需要7笔就能完成,因此你最多只能错6次。 注意,猜一个已经猜过的字母也算错。
在本题中,你的任务是编写一个“裁判”程序,输入单词和玩家的猜测,判断玩家赢了(you win)、 输了(you lose)还是放弃了(You chickened out)。 每组数据包含3行,第1行是游戏编号(-1为输入结束标记),第2行是计算机想的单词,第3行是玩家的猜测。 后两行保证只含小写字母。
样例输入:

cheese
chese
2

cheese
abcdefg

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;
}

 

以上是关于刽子手游戏的主要内容,如果未能解决你的问题,请参考以下文章

创建一个刽子手游戏

C尖刽子手游戏+计数器

刽子手游戏(UVa489)

如何跟踪已经在 C++ 的刽子手游戏中猜到的字母?

刽子手代码卡在三个不同的问题上

刽子手游戏 Python 错误