You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在老虎机游戏的3x5 2D string vector中检测对角线匹配

老虎机3x5矩阵对角线匹配检测实现

修正后的完整代码

#include <iostream>
#include <vector>
#include <string>

using namespace std;

// 打印2D向量(调试用)
void print2D_Vector(const vector<vector<string>>& vec) {
    for (const auto& row : vec) {
        for (const auto& elem : row) {
            cout << elem << " ";
        }
        cout << endl;
    }
}

// 根据匹配符号计算奖金
int getPayout(const string& symbol) {
    if (symbol == "cherry") return 5;
    if (symbol == "bell") return 10;
    if (symbol == "7") return 20;
    if (symbol == "diamond") return 25;
    if (symbol == "$") return 30;
    return 0;
}

int main() {
    vector<vector<string>> reels = {
        {"cherry", "bell", "7", "bell", "diamond"},
        {"diamond", "cherry", "7", "bell", "$"},
        {"7", "diamond", "cherry", "$", "bell"}
    };

    print2D_Vector(reels);
    int total_Payout = 0;

    // 检测左上到右下的对角线匹配
    for (int start_col = 0; start_col <= 2; ++start_col) {
        string first = reels[0][start_col];
        string second = reels[1][start_col + 1];
        string third = reels[2][start_col + 2];
        
        if (first == second && second == third) {
            total_Payout += getPayout(first);
            cout << "匹配到左上到右下对角线:" << first << endl;
        }
    }

    // 检测左下到右上的对角线匹配
    for (int start_col = 0; start_col <= 2; ++start_col) {
        string first = reels[2][start_col];
        string second = reels[1][start_col + 1];
        string third = reels[0][start_col + 2];
        
        if (first == second && second == third) {
            total_Payout += getPayout(first);
            cout << "匹配到左下到右上对角线:" << first << endl;
        }
    }

    cout << "你的总奖金是:" << total_Payout << endl;

    return 0;
}

关键逻辑说明

  • 正向对角线遍历:
    左上到右下的3条对角线起始列分别为0、1、2,对应元素坐标为(0, col)、(1, col+1)、(2, col+2),循环遍历起始列即可覆盖所有目标对角线。
  • 反向对角线遍历:
    左下到右上的3条对角线起始列同样是0、1、2,对应元素坐标为(2, col)、(1, col+1)、(0, col+2),逻辑与正向完全对称。
  • 奖金计算优化:
    将符号与奖金的映射抽为独立函数getPayout,后续新增符号或调整奖金时,只需修改该函数即可,代码维护性更强。
  • 匹配判断简化:
    先取出三个位置的元素再做相等判断,比嵌套条件更直观,也方便调试时查看每个位置的符号值。

内容的提问来源于stack exchange,提问作者o.ayden76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 01:31:00