算法竞赛入门经典第二版例题 4-2 刽子手游戏

算法竞赛入门经典第二版例题 4-2 刽子手游戏

# include 
using namespace std;

int Left, chance;  //还需要猜left个位置,错chance次之后就会输
string s,s2; //答案是字符串s,玩家猜的字母序列是s2
int win,lose;   //win = 1表示赢了。lose = 1表示输了

void guess(char ch);

int main()
{
    int rnd = 0;
    cin>>rnd;
    while(rnd != -1)
    {
        cin>>s>>s2;
        cout<<"Round "<0;//初始化
        Left = s.length();
        chance = 7;
        for(int i = 0; i < s.length(); i++)
        {
            guess(s2[i]);
            if(win || lose)  break;
        }

        if(win) cout<<"You win!\n";
        else if(lose) cout<<"You lose.\n";
        else cout<<"You chickened out.\n";

        cin>>rnd;
    }
    return 0;
}

void guess(char ch)
{
    int bad = 1;
    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] == ch)
        {
            Left--;
            s[i] = ' ';
            bad = 0;
        }
    }

    if(bad) chance--;
    if(chance == 0) lose = 1;
    if(Left == 0) win = 1;
}

你可能感兴趣的:(算法竞赛入门经典第二版课后习题)