Générer un nombre aléatoire

Il existe plusieurs méthodes.

Celle que j'utilise utilise la bibliothèque time pour initialiser le générateur de nombre.

Attention : un générateur de nombre réellement aléatoire n'existe pas. Il s'agit toujours de codes pseudos aléatoire avec une périodicité plus ou moins grande.

  • srand : permet d'initialiser le générateur. cette fonction ne doit être appelée qu'une seule fois
  • rand : génére une valeur pseudo-aléatoire de 0 à RAND_MAX (qui est au moins de 32767).
    en écrivant rand() %n + m : l'intervalle de valeur est [m; m+n[


Exemple de code

les codes spécifique à la génération sont en couleur, le reste est en gris

Mainwindow.cpp


#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <time.h>


MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

       statusLbl = new QLabel(); //créé le Label

       statusBar()->addWidget( statusLbl, 1 );

       statusLbl->setText("Score = 0");

        srand(time(NULL));//on initialise le générateur


}


MainWindow::~MainWindow()

{

    delete ui;

}

//---------------------------------------------------

........

//---------------------------------------------------

    int MainWindow::aleatoireUnATrois()

    { //rend une valeur entre 1 et 3

        return (rand() % 3) + 1;

    }

//----------------------------------------------------

  void MainWindow::moteur(int joueur,int ordi)

  {

      QString resultat;

      bool joueurGagne=false;

   switch (ordi)

//----------------------------------------------------

void MainWindow::afficher()

{

  statusLbl->setText("nombre aleatoire = "+QString::number(aleatoireUnATrois()));

]