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?

*grab popcorn* viết 20:37 ngày 30/09/2018

rand() % 1 + 2 luôn bằng 2

Mr K viết 20:35 ngày 30/09/2018

Bạn thử với biểu thức này: ( rand() % 3 ) + 1

Bài liên quan
0