Beste mensen,
Ik ondervind wat problemen met het genereren van random getallen in C++.
Mijn bedoeling is het ontwikkelen van een soort Yahtzee game.
Binnen deze game heb ik een class Dobbelsteen, welke een random getal kan genereren tussen 1 en 6.
De class Yahtzee maakt 5 objecten van Dobbelsteen aan, en met een for-loop roep ik van elke dobbelsteen een methode aan voor het genereren van een random getal.
Zie onderstaande code.
Wat mijn probleem met bovenstaande code nou is, is dat ik bij het genereren van dus 5 keer een random getal 5 keer het zelfde getal terug krijg.
Ik zou niet weten hoe ik dit zou kunnen oplossen.
Heeft iemand een idee?
Ik ondervind wat problemen met het genereren van random getallen in C++.
Mijn bedoeling is het ontwikkelen van een soort Yahtzee game.
Binnen deze game heb ik een class Dobbelsteen, welke een random getal kan genereren tussen 1 en 6.
De class Yahtzee maakt 5 objecten van Dobbelsteen aan, en met een for-loop roep ik van elke dobbelsteen een methode aan voor het genereren van een random getal.
Zie onderstaande code.
C++: Constanten.h
1
2
3
4
5
6
7
| #ifndef CONSTANTEN #define CONSTANTEN const int NUMBER_ON_DICE = 6; const int NUMBER_OF_DICES = 5; #endif |
C++: Dobbelsteen.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #ifndef DOBBELSTEEN #define DOBBELSTEEN #include "Constanten.h" #include <cstdlib> #include <ctime> class Dobbelsteen { public: // Getal dat de dobbelsteen aanwijst. int gegooid; int gooiDobbelsteen(); }; #endif |
C++: Dobbelsteen.cpp
1
2
3
4
5
6
7
8
9
10
| #include "Dobbelsteen.h" using namespace std; int Dobbelsteen::gooiDobbelsteen() { srand((unsigned)time(0)); this->gegooid = rand()%NUMBER_ON_DICE + 1; return this->gegooid; } |
C++: Yahtzee.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #ifndef YAHTZEE #define YAHTZEE #include "Constanten.h" #include "Dobbelsteen.h" #include <cstdlib> class Yahtzee { private: Dobbelsteen* dobbelstenen[NUMBER_OF_DICES]; public: Yahtzee(); void gooiDobbelstenen(); }; #endif |
C++: Yahtzee.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include "Yahtzee.h" #include <iostream> using namespace std; Yahtzee::Yahtzee() { for(int i = 0; i < NUMBER_OF_DICES; i++) { Dobbelsteen* dobbelsteen = new Dobbelsteen(); dobbelstenen[i] = dobbelsteen; } } void Yahtzee::gooiDobbelstenen() { for(int i = 0; i < NUMBER_OF_DICES; i++) { int blaat = dobbelstenen[i]->gooiDobbelsteen(); cout << blaat << endl; } cin.get(); } |
C++: Game.cpp
1
2
3
4
5
6
7
8
9
10
| #include <iostream> #include "Yahtzee.h" using namespace std; int main() { Yahtzee yahtzee; yahtzee.gooiDobbelstenen(); } |
Wat mijn probleem met bovenstaande code nou is, is dat ik bij het genereren van dus 5 keer een random getal 5 keer het zelfde getal terug krijg.
Ik zou niet weten hoe ik dit zou kunnen oplossen.
Heeft iemand een idee?
Als je sterft voordat je sterft, sterf je niet wanneer je sterft. Rom 6:5