C语言石头剪刀布游戏:稳赢不输,但每隔K次平局

游戏规则:

编写一个C语言程序,模拟石头剪刀布游戏,根据对方的出招,给出对应的赢招。为了让游戏更有趣,程序会每隔K次出招后,自动出一个平局。

输入格式:

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

输出格式:

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

输入样例:

2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End

输出样例:

Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu

思路:

可以用哈希表将三种招式分别映射到0、1、2。接下来,每输入一种招式,就将计数器加1。如果计数器对K取余为0,就输出“平局”招式;否则,输出能赢对方的招式,即对方招式加1对3取余。

C++ 代码

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main() {
    int K;
    cin >> K;
    map<string, int> hashmap = {{'ChuiZi', 0}, {'JianDao', 1}, {'Bu', 2}};
    int count = 0;
    string input;
    while (cin >> input && input != 'End') {
        if (count % K == 0) {
            cout << input << endl; // 平局
        } else {
            int index = hashmap[input];
            int nextIndex = (index + 1) % 3;
            for (auto it : hashmap) {
                if (it.second == nextIndex) {
                    cout << it.first << endl;
                    break;
                }
            }
        }
        count++;
    }
    return 0;
}
C语言石头剪刀布游戏:稳赢不输,但每隔K次平局

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

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