weixin_43436453 2018-12-01 11:20 采纳率: 0%
浏览 329

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

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

 #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;
}



谢谢各位前辈。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 matlab有关常微分方程的问题求解决
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?
    • ¥100 求三轴之间相互配合画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考