qrand 未在此范围内声明
Posted
技术标签:
【中文标题】qrand 未在此范围内声明【英文标题】:qrand was not declared on this scope 【发布时间】:2021-11-08 10:14:48 【问题描述】:我在玩游戏时遇到了错误 - “Snake”。 伪随机数字生成器不工作。 它说“使用未声明的标识符 qrand”或“未在此范围内声明 qrand” 也许我使用了错误的 QT 版本 - 5.0.2
#include<QEvent>
#include <QGraphicsScene>
#include <QKeyEvent>
#include <QMessageBox>
#include <QAction>
#include <iostream>
#include "gamecontroller.h"
#include "food.h"
#include "snake.h"
#include "mainwindow.h"
void GameController::addNewFood()
int x, y;
do
x = (int)(qrand() % 200) / 10 - 10; //using undeclared identifier qrand
y = (int)(qrand() % 200) / 10 - 10; //using undeclared identifier qrand
x *= 10;
y *= 10;
while (snake->shape().contains(snake->mapFromScene(QPointF(x + 5, y + 5))));
Food *food = new Food(x, y);
scene.addItem(food);
【问题讨论】:
C++ 有some very good PRNG functionality in the standard library。例如,要生成一个范围内的整数,您可以使用std::uniform_int_distribution
。
【参考方案1】:
也许该功能已被弃用(根据:https://doc.qt.io/qt-5/qtglobal-obsolete.html#qrand)。改用这个:https://doc.qt.io/qt-5/qrandomgenerator.html
编辑:也尝试添加#include <QtGlobal>
。这可能会有所帮助。
【讨论】:
以上是关于qrand 未在此范围内声明的主要内容,如果未能解决你的问题,请参考以下文章