Viết chương trình trò chơi oẳn tù tì pascal

Trò chơi oẳn tù tì" trò chơi có 2 người chơi mỗi người dùng tay để hiện thị 1 trong 3 công cụ sau: kéo bao và búa quy tắc như sau:
kéo thắng bao
bao thắng búa
búa thắng kéo
viết trương trình mô phỏng cho 2 người chơi và người chơi với máy.
Đây là code do mình viết dùng if else nhưng thấy nó không ổn cho lắm mọi người góp ý thêm cho mình để thuật toán tốt hơn tí nha, chỉ là BT đơn giản nhưng muốn học hỏi các anh chị đi trước về tư duy lập trình.

int main()
    {
	int n;
	int a = 1, b =3;
	cout << "Moi ban chon :";
	cout << "\n1.Keo";	//1 vs 3 thì trả về 1
	cout << "\n2.Bua";	//2 vs 1 thì trả về 2
	cout << "\n3.Bao";	// 3 vs2 thì trả về 3
    nhap: do{
		cout << "\n Nguoi choi chon :";
		cin >> n;
		if (n < 0 || n>3)
			cout << "\nBan nhap sai. Moi ban kiem tra lai";
	} while (n < 0 || n>3);
	srand(time(0));
	int x = a + rand() % (b - a + 1);
	if (x == n)
	{
		cout << "Ban da hoa voi may";
		goto nhap;
	}
	if (x == 1 && n == 3 || (x == 2 && n == 1) || (x == 3 && n == 2))
		{
			cout << x;
			cout << "\nBan da Thua";
		}

		
	else 
	{
		cout << x;
		cout << "May da thang";
	}
	
	getch();
	return 0;
}
#include 
#include 
#include 
#include 
#include 
using namespace std;

int main() {
	srand(time(0));
	char c = 0;
	char a[3];
	a[0] = 'K';
	a[1] = 'B';
	a[2] = 'G';
	int d = 0;
	
	X:
	cout << "\t\t\t\tDIEM : " << d << "\n\n\n";
	int m = rand() % 3;
 	if (m == 0) {
	 	cout << "Keo !" << endl ;
		c = getch();
		if (c == 98) { cout << "Ban thang roi !" ; d++;
		Sleep(1000);
		system("cls"); goto X; }
		else cout << "Ban thua roi !" ;
		
		}

	if (m == 1) {
		cout << "Bua !" << endl;
		c = getch();
		if (c == 103) { cout << "Ban thang roi !" ; d++;
		Sleep(1000);
		system("cls"); goto X; }
		else cout << "Ban thua roi !" ;
		
		}

	if (m == 2) {
		cout << "Giay !" << endl;
		c = getch();
		if (c == 107) { cout << "Ban thang roi !" ; d++;
		Sleep(1000);
		system("cls"); goto X; }
		else cout << "Ban thua roi !" ;
		
		}
}

Cái này viết lâu lắm r. Chơi với máy
Quy định : k - > kéo
b - > búa
g - > giấy

Thử một phát:

#include 
#include 
#include 

using namespace std;
int main() {
    int a, x, v, t = 0, y = 0, c = 0, d = 0;
    srand(time(0));
    string* ott = new string[3]{"Kéo", "Búa", "Bao"};
    do {
        a = rand() % 3;
        cout << "Lượt chơi: " << t + 1 << endl << \
            "Hãy chọn:" << endl << \
            "1. " << ott[0] << endl << \
            "2. " << ott[1] << endl << \
            "3. " << ott[2] << endl << \
            ">> ";
        cin >> x;
        cout << endl;
        if (x == 0) {
            break;
        } else if (x < 1 || x > 3) {
            cout << "Không hợp lệ, xin nhập lại!" << endl;
            continue;
        }
        v = --x - a;
        v -= v / 2 * 3;
        cout << "Máy chọn: " << ott[a] << endl << \
            "Bạn chọn: " << ott[x] << endl << \
            (!v ? "Hòa rồi!" : v > 0 ? "Bạn thắng!" : "Máy thắng!") << \
            endl << "--------" << endl;
        ++t;
        y += (v + 1) / 2;
        c -= (v - 1) / 2;
        d += ((v + 2) % 3) / 2;
    } while (true);
    cout << "TRÒ CHƠI KẾT THÚC!" << endl << \
        "Tổng số lượt chơi: " << t << "." << endl << \
        "Bạn đã thắng " << y << " lượt." << endl << \
        "Máy đã thắng " << c << " lượt." << endl << \
        "Hòa " << d << " lượt." << endl;
}

Chạy thử: https://onetwothree.situvngcd.repl.run/

1 pha cồng kềnh để sd đúng bài bản các bài học cơ bản:

#include 
#include 
#include 
void Menu(){
    printf("************************\n");
    printf("****     X: kéo.    ****\n"); //88
    printf("****     O: búa.    ****\n"); //79
    printf("****     #: bao.     ****\n"); //35
    printf("****     9: kết thúc. ****\n"); //42
    printf("************************\n");
}
int main(void){
    int bot;
    char key;
    Menu();
    do{
        printf("\n******************************\n\n");
        printf("mời bạn chọn: ");
        scanf("%c", &key);
        getchar();
        if( key != '#' && key != 'O' && key != 'X' && key != '9'){
            printf("Lựa chọn không hợp lệ.\n");
            continue;
        }else if (key == '9'){
            printf("Hẹn gặp lại.\n");
            exit(1);
        }else{
            srand(time(NULL));
            bot = (rand() % 3) + 1;
            printf("Bạn chọn %c và máy chọn %c.\n", key,bot);
            switch (bot) {
                case 1: // kéo.
                    bot = 'X';
                    if (key == 88) {
                        printf("Bạn hoà với máy.\n");
                    }else if (key == 79){
                        printf("Bạn thắng.\n");
                    }else {
                        printf("Máy thắng.\n");
                    }
                    break;
                case 2: // 바위.
                    bot = 'O';
                    if (key == 79) {
                        printf("Bạn hoà với máy.\n");
                    }else if (key == 35){
                        printf("Bạn thắng.\n");
                    }else {
                        printf("Máy thắng.\n");
                    }
                    break;
                case 3: // bao.
                    bot = '#';
                    if (key == 35) {
                       printf("Bạn hoà với máy.\n");
                    }else if (key == 88){
                        printf("Bạn thắng.\n");
                    }else {
                        printf("Máy thắng.\n");
                    }
                    break;
                default:
                    break;
            }
        }
    }while (key != '9');
    return 0;
}