C语言石头剪刀布游戏:稳赢策略与平局控制

本代码实现了一个石头剪刀布游戏,玩家需要根据对手的出招,给出对应的赢招。为了让游戏更具趣味性,程序会每隔K次出招后,设定一次平局。

思路:

为了稳赢不输,我们需要在对手出招之前,根据之前的出招预处理出自己的赢招。根据石头剪刀布的游戏规则,石头赢剪刀,剪刀赢布,布赢石头。因此,我们可以设定一个赢招数组 win[i]win[i]=i%3+1,表示第 i 个赢招。

程序读取对手的出招,并根据 win 数组给出自己的出招。为了避免对手输得太惨,程序设置了一个计数器,每隔 k 次出招就设定一次平局。此外,如果对手已经连续输了两次,程序也会直接设定一次平局。

输入格式:

输入首先在第一行给出正整数 K(≤10),即平局间隔的次数。随后每行给出对手的一次出招:'ChuiZi' 代表“锤子”、'JianDao' 代表“剪刀”、'Bu' 代表“布”。'End' 代表输入结束,这一行不要作为出招处理。

输出格式:

对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。

输入样例:

2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End

输出样例:

Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu

C++ 代码:

#include <iostream>
using namespace std;

int main() {
    int k, cnt = 0;
    cin >> k;
    int win[3] = {2, 3, 1}; // 赢招数组
    string s;
    while (cin >> s && s != "End") {
        if (cnt % k == 0 || cnt >= 2) { // 每隔 k 次或连续输两次,设定平局
            cout << s << endl;
            cnt = 0; // 重置计数器
        } else {
            cout << win[s == "ChuiZi" ? 0 : s == "JianDao" ? 1 : 2] << endl;
            cnt++; // 计数器加 1
        }
    }
    return 0;
}
C语言石头剪刀布游戏:稳赢策略与平局控制

原文地址: https://www.cveoy.top/t/topic/oSws 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录