执行随机开关函数的QT方式是什么连续两次使用相同情况的方法

What is the Qt way of doing a random switch function that never uses the same case twice in a row?

本文关键字:两次 方法 情况 QT 函数 随机开关 方式 是什么 连续 执行      更新时间:2023-10-16

我假设代码应该看起来像这样:

QString Boat::programming()
{
    int rand = ???; 
    switch (rand) {
    case 1:
        return function1();
    case 2:
        return function2();
    case 3:
        return function3();
    case 4:
        return function4();
    case 5:
        return function5();
    default:
        return "";
    }
}

要求:

  • 当我将函数称为第二或第三次功能时,rand无法使用上次或之前的时间相同的值。
  • 必须使用QT的框架。

我应该如何处理?

我假设'???'是在所需范围内获取随机数的QT方法。只是包裹'???在存储最后2个值的另一个函数中,它返回...

int myrand()
{
    static int pp = -1, ppp = -1;
    int p;
    do { p = ???; } while (p == pp || p == ppp);
    ppp = pp; pp = p;
    return p;
}
QString Boat::programming()
{
    int rand = myrand();
    ...