30/09/2018, 18:28
Thắc mắc về Random
Bữa trước em có viết đoạn code mô phổng trò chơi kéo, búa, bao giữa người với máy, em chạy được chương trình nhưng đa số ra chỉ 1 kết quả. Code của em đây:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int main() {
srand((unsigned int)time(NULL));
char ch;
int x, y, thang = 0, thua = 0, hoa = 0;
cout << "Nhap 'a' de chon Keo" << endl;
cout << "Nhap 'b' de chon Bua" << endl;
cout << "Nhap 'c' de chon Bao" << endl;
cout << "Nhap space de ket thuc" << endl;
cout << endl;
//Nhap
do {
ch = _getch();
cout << "Ban chon: ";
switch (ch) {
case 'a':
cout << "Keo" << endl;
break;
case 'b':
cout << "Bua" << endl;
break;
case 'c':
cout << "Bao" << endl;
break;
}
//May random
cout << "May chon: ";
y = rand() % 1 + 2;
if (y == 1) cout << "Keo" << endl;
else if (y == 2) cout << "Bua" << endl;
else if (y == 3) cout << "Bao" << endl;
//Kiem tra thang thua
if (ch == 'a'&&y == 1) {
cout << "Ket qua: hoa" << endl;
hoa++;
}
if (ch == 'b'&&y == 2) {
cout << "Ket qua: hoa" << endl;
hoa++;
}
if (ch == 'c'&&y == 3) {
cout << "Ket qua: hoa" << endl;
hoa++;
}
if (ch == 'a'&&y == 3) {
cout << "Ket qua: Ban thang" << endl;
thang++;
}
if (ch == 'b'&&y == 1) {
cout << "Ket qua: Ban thang" << endl;
thang++;
}
if (ch == 'c'&&y == 2) {
cout << "Ket qua: Ban thang" << endl;
thang++;
}
if (ch == 'a'&&y == 2) {
cout << "Ket qua: Ban thua" << endl;
thua++;
}
if (ch == 'b'&&y == 3) {
cout << "Ket qua: Ban thua" << endl;
thua++;
}
if (ch == 'c'&&y == 1) {
cout << "Ket qua: Ban thua" << endl;
thua++;
}
cout << endl;
x = int(ch);
} while (x != 32);
cout << "Thang: " << thang << " lan" << endl;
cout << "Thua: " << thua << " lan" << endl;
cout << "Hoa: " << hoa << " lan" << endl;
system("pause");
return 0;
}
}
Có phải hàm rand() em sử dụng bị lỗi chỗ nào không bác?
Bài liên quan
rand() % 1 + 2
luôn bằng 2Bạn thử với biểu thức này:
( rand() % 3 ) + 1