一个简单的坦克打点的小游戏,但是在没有进行的时候也会一直进行循环,如何停顿循环呢?

就是想要让这个循环在不进行操作时停顿,不会一直重复打印。

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

int main()
{
    int i=0,j=0;
    int x = 5;
    int y =10;
    char input;
    int isfire;

    int score=0;

    int ny ;
    int left = 0,right = 20;
    srand(time(NULL));
        ny=rand()%(left - right)+right;            //取随机数
    int iskilled = 0;

    while (1)
    {
        system("cls");    //清屏

        if(!iskilled)         //判断点是否被击中
        {
            for(j=0;j<ny;j++)
                {
                    printf(" ");
                }
            printf("+\n");
        }

        if(isfire==0)     //是否开火
        {
            for(i=0;i<x+1;i++)
                printf("\n");
        }
        else
        {
            for(i=0;i<x;i++)
            {
                for(j=0;j<y;j++)
                    printf(" ");
                    printf("  |\n");
            }
            if(y+2==ny)   //判断点和子弹是否在同一列
                {
                    ny=rand()%(left - right)+right;
                    score++;
                }
            isfire=0;
        }
         //输出坦克形状
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("  *\n");
        for(j = 0; j<y;j++)
        {
            printf(" ");
        }
        printf("*****\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("*   *");
        printf("\n");

                //记分器
         printf("\n  score:%d  \n",score);

                //移动坦克和发射子弹的操作
        if(kbhit())
        {
            input = getch();
            if(input == 'a')
                y--;
            if(input == 'd')
                y++;
            if(input == 'w')
                x--;
            if(input == 's')
                x++;
            if(input == ' ')
                isfire = 1;
         }
    }
    return 0;
}



谢谢各位前辈。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问