用do / while循环进行turbo c猜谜游戏

时间:2014-03-05 04:58:36

标签: loops do-while turbo-c

我在Turbo C中制作了一个简单的程序,就像一个猜谜游戏。它应该在用户输入3个错误字符后,或者在猜到正确的字符后立即结束游戏。然而,它不起作用,我无法弄清楚为什么。我输入4个字符(错误与否)后游戏才关闭。

#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();

}

2 个答案:

答案 0 :(得分:0)

将循环条件更改为

while (tries <= 3 && win_flag == 0);

答案 1 :(得分:0)

  1. 您忘记处理每个角色后人们按下的enter键。所以你的下一个getch正在获得它们。

  2. 您的while子句被破坏了。只要该人仍然尝试离开并且获胜标志仍然为零,您希望保持循环。所以:(tries <= 3) && (win_flag == 0)