码迷,mamicode.com
首页 > 其他好文 > 详细

刽子手游戏

时间:2020-05-02 19:23:16      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:guess   turn   ||   字母   包含   编号   return   win   define   

题目:游戏规则是这样的:计算机想一个单词让你猜,你每次可以猜一个字母。 如果单词里有那个字母,所有该字母会显示出来;如果没有那个字母,则计算机会在一幅“刽子手”画上填一笔。 这幅画一共需要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;
}

 

刽子手游戏

标签:guess   turn   ||   字母   包含   编号   return   win   define   

原文地址:https://www.cnblogs.com/liushipeng648/p/12818740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!