C游戏没有完成

时间:2017-05-10 06:05:04

标签: c

我写了一个简单的禁止游戏。 我想学习一些东西,如果进入了42行;当比赛结束时,它不会进入84. line。

如果游戏没有进入42.线,当游戏过度到84. line。

int main() {

    setlocale(LC_ALL, "Turkish");
    int zar1 = 0;
    int zar2 = 0;
    int i = 1;
    int a = 1;
    int toplamzar = 0;
    int oyuncununzari = 0;
    while (i == 1) {
        srand(time(NULL));
        zar1 = 1 + (rand() % 6);
        zar2 = 1 + (rand() % 6);
        toplamzar = zar1 + zar2;
        printf("\n****ZAR 1: %d \n****ZAR 2: %d\n", zar1, zar2);

        switch (toplamzar) {

        case 7: case 11:
            printf("%d attınız ve kazandınız.", toplamzar);
            break;

        case 2: case 3: case 12:
            printf("%d attınız ve kaybettiniz.", toplamzar);
            break;

        case 4: case 5: case 6: case 8: case 9: case 10: {
            printf("%d sayısı sizin sayınız.", toplamzar);

            oyuncununzari = toplamzar;

            toplamzar = -2;
            printf("\nZar atın:");
            scanf("%d", &a);

            while (toplamzar != oyuncununzari || toplamzar != 7) {

                while (a == 1) {

                    zar1 = 1 + rand() % 6;
                    zar2 = 1 + rand() % 6;
                    toplamzar = zar1 + zar2;
                    printf("\n****ZAR 1: %d \n****ZAR 2: %d\n", zar1, zar2);

                    if (toplamzar == oyuncununzari) {
                        printf("%d attınız, kazandınız.", toplamzar);
                        a = 0;



                    }
                    else


                    if (toplamzar == 7) {
                        printf("%d attınız, kaybettiniz.", toplamzar);
                        a = 0;

                    }
                    else

                    if (toplamzar != 7 && toplamzar != oyuncununzari) {
                        scanf("%d", &a);

                    }



                }
            }


            break;
            }

        }

        printf("\nTekrar oynamak ister misiniz?");
        scanf("%d", &i);
        }

    return 0;

    }

1 个答案:

答案 0 :(得分:1)

您需要更改行:

while (toplamzar != oyuncununzari || toplamzar != 7)

到:

while ( (toplamzar != oyuncununzari) && (toplamzar != 7) ) 

以便在 两个 条件为真时执行循环。现在即使只有其中一个是真的,它也会执行。