Cần giúp đỡ làm chức năng hỏi người chơi có muốn chơi tiếp hay không

Em có code 1 đoạn như sau :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()

{
    int sodoan1 = 0, sodoan2 = 0, sobimat =0, modetrochoi = 0, dokho = 0, solanchoi = 1, luachon = 0;
do {
    printf("***Chao mung ban den voi tro choi doan so***\nChon mode ban muon choi\n1.Mot nguoi\n2.Hai nguoi\n");
    scanf("%d", &modetrochoi);
    switch(modetrochoi) {
    case 1:
        printf("Ban da chon che do 1 nguoi.\n***Chon do kho cho tro choi***\n1.De(1->100)\n2.Binh thuong(1->1000)\n3.Kho(1->10000)\n");
        scanf("%d", &dokho);
        switch(dokho) {
       case 1:
        printf("Ban da chon che do de.\n");
        const int MAX= 100, MIN=1;
        srand(time(NULL));
        sobimat = (rand() % (MAX - MIN + 1) + MIN);
do{
        printf("Nhap so cua ban vao day:\n");
        scanf("%d", &sodoan1);
        if ( sodoan1 == sobimat) printf("Xin chuc mung!!! Ban da doan trung sau %d lan choi.\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        solanchoi++;  } while (sodoan1 != sobimat);
         break;
       case 2:
        printf("Ban da chon che do binh thuong.\n");
        const int tonhat= 1000, benhat=1;
        srand(time(NULL));
        sobimat = (rand() % (tonhat - benhat + 1) + benhat);
do{
        printf("Nhap so cua ban vao day:\n");
        scanf("%d", &sodoan1);
        if ( sodoan1 == sobimat) printf("Xin chuc mung!!! Ban da doan trung sau %d lan choi.\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        solanchoi++;  } while (sodoan1 != sobimat);
         break;
       case 3:
        printf("Ban da chon che do kho.\n");
        const int to= 10000, be=1;
        srand(time(NULL));
        sobimat = (rand() % (to - be + 1) + be);
do{
        printf("Nhap so cua ban vao day:\n");
        scanf("%d", &sodoan1);
        if ( sodoan1 == sobimat) printf("Xin chuc mung!!! Ban da doan trung sau %d lan choi.\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        solanchoi++;  } while (sodoan1 != sobimat);
        break; }
        break;

     case 2:
        printf("Ban da chon che do 2 nguoi.\n***Chon do kho cho tro choi***\n1.De(1->100)\n2.Binh thuong(1->1000)\n3.Kho(1->10000)\n");
        scanf("%d", &dokho);
        switch(dokho) {
      case 1:
        printf("Ban da chon che do de.\n");
        const int quanto= 100, quanbe=1;
        srand(time(NULL));
        sobimat = (rand() % (quanto - quanbe + 1) + quanbe);
do{
        printf("Nhap so cua nguoi choi 1 vao day:\n");
        scanf("%d", &sodoan1);
        if ( sodoan1 == sobimat) printf("Xin chuc mung!!! Nguoi choi 1 da chien thang sau %d lan choi\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        printf("Nhap so cua nguoi choi 2 vao day:\n");
        scanf("%d", &sodoan2);
        if ( sodoan2 == sobimat) printf("Xin chuc mung!!! Nguoi choi 2 da chien thang sau %d lan choi.\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        solanchoi++; } while (sodoan1 != sobimat || sodoan2 != sobimat);
        break;
      case 2:
        printf("Ban da chon che do binh thuong.\n");
        const int quanbig= 1000, quansmall=1;
        srand(time(NULL));
        sobimat = (rand() % (quanbig - quansmall + 1) + quansmall);
do{
        printf("Nhap so cua nguoi choi 1 vao day:\n");
        scanf("%d", &sodoan1);
        if ( sodoan1 == sobimat) printf("Xin chuc mung!!! Nguoi choi 1 da chien thang sau %d lan choi\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        printf("Nhap so cua nguoi choi 2 vao day:\n");
        scanf("%d", &sodoan2);
        if ( sodoan2 == sobimat) printf("Xin chuc mung!!! Nguoi choi 2 da chien thang sau %d lan choi.\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        solanchoi++; } while (sodoan1 != sobimat || sodoan2 != sobimat);
        break;
      case 3:
        printf("Ban da chon che do kho.\n");
        const int quanbeo= 10000, quangay=1;
        srand(time(NULL));
        sobimat = (rand() % (quanbeo - quangay + 1) + quangay);
do{
        printf("Nhap so cua nguoi choi 1 vao day:\n");
        scanf("%d", &sodoan1);
        if ( sodoan1 == sobimat) printf("Xin chuc mung!!! Nguoi choi 1 da chien thang sau %d lan choi\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        printf("Nhap so cua nguoi choi 2 vao day:\n");
        scanf("%d", &sodoan2);
        if ( sodoan2 == sobimat) printf("Xin chuc mung!!! Nguoi choi 2 da chien thang sau %d lan choi.\n", solanchoi);
        else if (sodoan1 > sobimat) printf("Nho hon mot chut.\n");
        else printf("Lon hon mot chut.\n");
        solanchoi++; } while (sodoan1 != sobimat || sodoan2 != sobimat);
        break; }
      printf("Ban co muon choi lai?\n1.Co\n2.Khong");
      scanf("%d", luachon);


        return 0;
} }while (luachon == 2);  }

Đề bài như này, em đang bị vướng nốt cái phần hỏi người chơi có muốn chơi tiếp không ạ. Em cảm ơn mọi người

2

1 Like

Bạn hãy sửa lại code trong hàm main chỉ để chơi 1 lần. Sau đó đổi tên hàm main thành tên khác, ví dụ như game_on. Cuối cùng tạo hàm main với nội dung như sau:

int main(){
    do {
        game_on();
        int luachon = 0;
        printf("Ban co muon choi lai?\n1.Co\n2.Khong");
        scanf("%d", luachon);
    }while(luachon==1);
}
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?