Computer choosing a random number

Currently i'm making a game.

and i don't know how to let the computer choose a random number between 1 & 3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdlib>// Required header for srand() and rand()
#include <ctime> // Required header for time()

int main()
{
  std::srand( (unsigned)std::time( 0 ) ); // Seed so every time the program runs 
  // it generates new random numbers.
  // THIS SHOULD BE CALLED ONLY ONCE, AT THE BEGINNING OF MAIN

  int randomNum = std::rand() % 3 + 1;
  // rand() is the function that returns a pseudo random number.
  // the % modulous operator divides a number by the second and returns remainder. 
  // (The value returned will be from 0 to N-1 where N is the second number.)
  // Add 1 to a number 0 to N-1 and get 1 to N in this case 1 - 3.
}
Last edited on
Thanks!
Now it's always choosing 3? is that normal?
You only used srand once at the very beginning of main yes?
If you call srand multiple times and then get a random number at the same time it will produce the same number.

In a loop of getting multiple rand() it should look like this:
1
2
3
4
5
6
7
8
9
10
11
12
13
int main
{
  std::srand( (unsigned)std::time( 0 ) );
  // Never put in a loop, call only once, beginning of main. Nowhere else.

  // You can loop rand()
  for (int i = 0; i != 30; )
  {
    i = rand() % 30 + 1;
  }

  return 0;
}
I've put
std::srand( (unsigned)std::time( 0 ) );
int randomNum = std::rand() % 3 + 1;
at start
and i Use
number -= intrandomNum;

the number is always - 3
Can I see that section of your code. Paste it in the [ code ]Code here[ /code ] brackets.
It is already very long, i'll pm it to you :)
and its in dutch :s
Last edited on
I've pmed it
You're code should be fine to post here. I would help in the PM, but Dutch is not my fluent language. If its okay with you I am posting it here for others to help you. As I can tell I see no errors.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
//Mathieu Amand                           2A1         nimspel.CPP
//Doel:

//header-files
#include <iostream> //input- en output-stromen
#include <iomanip> //verzorgen van lay-out binnen console- of command-venster
#include <string> //werken met teksten van de klasse string
#include <cmath> //wiskundige en goniometrische library
#include <cstdlib> // is nodig als je gebruikt maak van de..
#include <ctime> // nodig voor de huidige tijd
using namespace std; //de standaardruimte heeft als naam std

//constanten
const int intMIN = 21, intMAX = 35;

// declaratie van functies (prototypes)
int intFRandom(int intMin, int intMax);


//hoofdprogramma (altijd als naam main)



int main()
{
	int inttegenstander, intbeginnen, intbalkenstart, intbalk, intnieuwbalken;
	int intkeuze;
	int intspeler = 1;



	srand( (unsigned)time( NULL ) );
	int intcomputer = rand() % 3 + 1;
	intbalkenstart = intFRandom(intMIN, intMAX);

	cout << "Spelregels: (druk op enter om deze te zien)" << endl << endl;
	cin.get();
	cout << "Er komen een aantal balken te voorschijn:" << endl;
	cout << "Elke ronde moet je 1, 2 of 3 balken verwijderen!" << endl;
	cout << "Degene die de laatste balk verwijdert is verloren!" <<endl<<endl;
	cin.get();

	cout << "Tegen wie wil je spelen?" << endl;
	cout << "Typ 1 als je tegen de computer wilt spelen." <<endl;
	cout << "Typ 2 als je tegen een vriend(in) wilt spelen." <<endl;
	cin >> inttegenstander;

	cout << endl<<endl;

	if (inttegenstander == 1)
	{
		cout << "Je speelt tegen de computer!" <<endl<<endl;
		cout << "Wie wil je dat begint?" <<endl;
		cout << "Typ 1 als je wilt dat de computer begint." <<endl;
		cout << "Typ 2 als je wilt dat je zelf begint." <<endl;
		cin >> intbeginnen;

		while (intbeginnen != 1 && intbeginnen != 2)
		{
			cout << "Gelieve alleen 1 of 2 in te voeren!" << endl;
			cout << "Typ 1 als je wilt dat de computer begint." <<endl;
			cout << "Typ 2 als je wilt dat je zelf begint." <<endl<<endl;
			cin >> intbeginnen;
		}

		if (intbeginnen == 2)
		{
			cout << "Jij mag beginnen!" << endl<<endl;
			cout << "Aantal balken aanwezig: " << intbalkenstart << " --> ";

			for (intbalk = 1; intbalk <= intbalkenstart; intbalk++)
			{
				cout << "|";
			}
			cout << endl;



		while (intbalkenstart >= 2)
		{
			if (intspeler == 1)
			{
				cout << "Hoeveel balken wil je verwijderen? [1], [2] of [3]?" << endl;
				cin >> intkeuze;
				cout << endl;


				while (intkeuze != 1 && intkeuze != 2 && intkeuze != 3)
				{
					cout << "Je kan niet " << intkeuze << " balken verwijderen!" << endl;
					cout << "Gelieve [1], [2] of [3] te typen naar gelang" << endl;
					cout << "het aantal balken dat je wilt verwijderen!" << endl;
					cin >> intkeuze;
				}
					if (intkeuze == 1 || intkeuze == 2 || intkeuze == 3)
					{
						intbalkenstart -= intkeuze;

						cout << "Je hebt " << intkeuze << " balken verwijderd!" << endl;
						cout << "Er zijn nog " << intbalkenstart << " over! --> ";

						for (intbalk = 1; intbalk <= intbalkenstart; intbalk++)
						{
							cout << "|";
						}
						cout << endl;
					}

					intspeler+=1;
			}

			if (intspeler == 2)
			{
				intbalkenstart -= intcomputer;

				cout << endl << "Computers beurt!" << endl << endl;
				cout << "De computer pakt " << intcomputer << " balken weg!" << endl;
				cout << "Aantal balken aanwezig: " << intbalkenstart << " --> ";

				for (intbalk = 1; intbalk <= intbalkenstart; intbalk++)
				{
					cout << "|";
				}
				cout << endl;

				intspeler-=1;
			}
		}
		if (intbalkenstart ==1)
		{
			cout << "Jij bent verloren!" << endl;
		}

		if (intbalkenstart <= 0)
		{
			cout << "Jij bent gewonnen!" << endl;
		}

		}

	}

	if (inttegenstander == 2)
	{
		cout << "Je speelt tegen een menselijk wezen!" <<endl<<endl;

	}

	while (inttegenstander != 1 && inttegenstander != 2)
	{
		cout << "Gelieve 1 of 2 in te typen!" <<endl;
		cout << "Typ 1 als je tegen de computer wilt spelen." <<endl;
		cout << "Typ 2 als je tegen een vriend(in) wilt spelen." <<endl;
		cin >> inttegenstander;
	}

	system("PAUSE"); // dit dient om de console op C++ 2010 NIET te sluiten!
}


int intFRandom(int intMin, int intMax)
{
   int intbalkenstart = rand() % (intMax - intMin + 1) + intMin;
   return intbalkenstart;
}
Topic archived. No new replies allowed.