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()));
]