CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème de random C++

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
Darkai25
Darkai25
Niveau 34
11 février 2019 à 15:23:47

Salut, au début je ne voulais pas poster de code ici pour ne pas polluer mais finalement ça m'a l'air approprié, si ça ne l'est pas merci de me l'indiquer et je supprimerais !

Pour entrer dans le vif du sujet, je suis un débutant en c++ et je glane des ressources un peu partout pour avancer et atteindre mon premier objectif qui est de créer un petit Mastermind.

Actuellement je tente de synthétiser des acquis en créant un mastermind qui fonctionne en tant qu'application console. Seulement j'ai déjà un caillou dans ma chaussure ! Je poste le code:

#include <iostream>
#include <cstdlib>
#include <time.h>

std::string colorsRandomizer();

int main()
{

    //Declaration des variables
    std::string color_1;
    std::string color_2;
    std::string color_3;
    std::string color_4;
    std::string color_5;
    std::string color_6;

    //Creation aleatoire de la combinaison

    color_1 = colorsRandomizer();
    color_2 = colorsRandomizer();
    color_3 = colorsRandomizer();
    color_4 = colorsRandomizer();
    color_5 = colorsRandomizer();
    color_6 = colorsRandomizer();

    std::cout << "La combinaison est " << color_1 << ", " << color_2 << ", " << color_3 << ", " << color_4 << ", " << color_5 << ", " << color_6 << std::endl;



    return 0;
}


std::string colorsRandomizer()
{
    short x;
    std::string color;
    std::srand(time(0));
    x = rand() % 6;

    switch(x){
    case 0:
        color = "red";
        break;
    case 1:
        color = "blue";
        break;
    case 2:
        color = "yellow";
        break;
    case 3:
        color = "violet";
        break;
    case 4:
        color = "green";
        break;
    case 5:
        color = "orange";
        break;
    }

    return color;


}

En fait, le randomizer que "j'ai" créé ( oui car je ne sais pas encore randomiser des string sauf en passant par une méthode indirecte comme ici ) randomise une seule fois, cad que je vais me retrouver avec une combinaison du style " red,red,red,red,red,red " ou "yellow,yellow,yellow,yellow,yellow,yellow" à chaque fois.

Je n'arrive pas à comprendre ou est l'erreur, si quelqu'un pouvait m'aider ce serait sympathique. :)

Merci d'avoir lu.

AtmelAVR
AtmelAVR
Niveau 4
11 février 2019 à 15:42:09

Ton problème vient du fait que tu appelles srand plusieurs fois. Il faut seulement l’appeler une fois dans ton programme.

La documentation: https://en.cppreference.ccom/w/cpp/numeric/random/srand

Generally speaking, the pseudo-random number generator should only be seeded once, before any calls to rand(), at the start of the program. It should not be repeatedly seeded, or reseeded every time you wish to generate a new batch of pseudo-random numbers.

Darkai25
Darkai25
Niveau 34
11 février 2019 à 15:55:19

Ah, mon erreur était si bête. :( Je ne connais pas assez srand.

Merci de cette réponse si rapide et merci pour le lien.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware