permainan tebak turbo c dengan loop do/sementara

Saya telah membuat program sederhana di Turbo C yang berfungsi seperti permainan tebak-tebakan. Ini harus mengakhiri permainan setelah pengguna memasukkan 3 karakter yang salah, atau segera setelah karakter yang benar dapat ditebak. Namun itu tidak berhasil dan saya tidak tahu alasannya. Game baru ditutup setelah saya input 4 karakter (salah atau tidak).

#include <stdio.h>
#include <conio.h>

void main(void)
{
char ch;
int tries = 0;
int win_flag = 0;

clrscr();


printf("Guess the letter: ");

do
{
    ch = getch();
    printf("%c", ch);
    tries++;
    if (ch == 'a')
        win_flag = 1;
    else
        win_flag = 0;
}
while (tries <= 3 || win_flag == 1);

if (tries <= 3)
    printf("\nGame over.");
else if (win_flag == 1)
    printf("\nYou win!");

getch();

}


person user3359196    schedule 05.03.2014    source sumber


Jawaban (2)


Ubah kondisi loop Anda sebagai

while (tries <= 3 && win_flag == 0);
person Riz    schedule 05.03.2014

  1. Anda lupa menangani tombol enter yang ditekan orang setelah setiap karakter. Jadi getch Anda berikutnya akan mendapatkannya.

  2. Klausa while Anda rusak. Anda ingin terus melakukan perulangan selama orang tersebut masih memiliki sisa percobaan dan bendera kemenangan masih nol. Jadi: (tries <= 3) && (win_flag == 0)

person David Schwartz    schedule 05.03.2014