首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让AI循环正常吗?

让AI循环正常吗?
EN

Stack Overflow用户
提问于 2018-12-18 05:04:13
回答 1查看 63关注 0票数 2

我正在做一个猜谜游戏的人工智能,我遇到了一个我自己似乎不能解决的问题。目标是让用户输入一个数字,让AI在合理的时间内猜测,我生成一个介于1-100之间的随机数字,并通过循环运行它来调整更低或更高。

代码语言:javascript
复制
void AI::AIguess(int usernum)
{
        srand(time(NULL));
        AIchoice = rand() % High + Low;
    // "too high" or "too low" accordingly
    do {
        if (AIchoice == usernum)
        {
            cout << AIchoice << " is this correct?" << endl;
        }
        else if (AIchoice <= usernum)
        {
            cout << AIchoice << " seems a little low.." << endl;
            Low = AIchoice;
            AIchoice = 0;
            AIchoice = rand() % High + Low;
            AIguesses++;
        }
        else if (AIchoice >= usernum)
        {
            cout << AIchoice << " might have overshot a bit :/" << endl;
            High = AIchoice;
            AIchoice = 0;
            AIchoice = rand() % High + Low;
            AIguesses++;
        }
    } while (AIchoice != usernum);
}

我使用前一个生成的数字作为下一个生成的数字的参数,希望能得到用户数量。它在if语句之间来回跳动,并分别调整高和低,但我面临的问题是,在循环几次之后,AIchoice开始添加超过100的值。有谁能帮我吗?

附言:非常感谢任何有帮助的AI创建信息:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-18 05:19:36

区间代码中的随机数是错误的。要在minmax之间生成一个数字,请执行(rand() % (max - min)) + min

因此,将AIchoice = rand() % High + Low;更改为AIChoice = (rand() % (High - Low)) + Low;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53822960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档