我写了一个简单的禁止游戏。 我想学习一些东西,如果进入了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;
}
答案 0 :(得分:1)
您需要更改行:
while (toplamzar != oyuncununzari || toplamzar != 7)
到:
while ( (toplamzar != oyuncununzari) && (toplamzar != 7) )
以便在 两个 条件为真时执行循环。现在即使只有其中一个是真的,它也会执行。