最简单的飞机游戏——根据童老师写出来的,emmmm

emmmm,说实在的一开始C语言很无聊,但是童老师的课很有意思,就跟着开始做点小游戏。作为一个测绘的孩子,正在试图学好编程。

这是一个最简单的飞机游戏,可以控制飞机前有左右移动来消除靶子并且计分。靶子是伪随机数生成的位置,试图在同一行随机移动,成功。试图在一个区域内随机移动,效果不好。暂时不清楚为什么不能在一个区域内随机移动……

要是有人告诉我为啥就好了……

以下是代码:

//简单的消除飞机小游戏

#include
#include                          //清屏
#include                           //不需要回车
#include                         //缓慢移动,设置停顿


int main()
{

    int i, j;
    int x=5, y=0;
    char input;
    int isfiled = 0;
    int iskilled = 0;                        
    int score = 0;                           //计算分数
    
    srand(time(0));
    int nx = rand() % 40 + 4;               //为了获取移动靶子设置随机数
    int ny = rand() % 40 + 4;
                         
        while (1)
    {
        system("CLS");                      //清屏
        
        if (!iskilled)                      //打中了则靶子消失
        {   
            for (i = 0; i < ny; i++)
                printf("\n");
            for (j = 0; j < nx; j++)        //利用随机数输出靶子
                printf(" ");
            printf("+\n");

        }
        else 
        {
            Sleep(20);
            for (j = 0; j < nx; j++)        //利用随机数输出靶子
                printf(" ");
            printf("+\n");
        }

        if (isfiled)
        {
                for (i = 0; i < y; i++)     //输出子弹头,如果输入空格键则输出子弹,若不输入空格,则不输出子弹
               {
                for (j = 0; j < x; j++)
                    printf(" ");
                printf("  |\n");
                if (x + 2 == nx)           //判断有无击中靶子
                {
                    iskilled = 1;
                    score++;
                    nx = rand() % 40 + 4;
                    ny = rand() % 40 + 4;
                }
                    
               isfiled = 0;
                 }
        }
        else {
            for (i = 0; i < y; i++)
                printf("\n");
            }

        for (j = 0; j < x; j++)               //输出一个小飞机
            printf(" ");
        printf("  *\n");
        for (j = 0; j < x; j++)
            printf(" ");
        printf("*****\n");
        for (j = 0; j < x; j++)
            printf(" ");
        printf(" * *\n");

        //scanf_s("%c", &input,1);        //输入wasd来控制小飞机上下移动
        input = _getch();
        if (input == 'a')
            x--;
        if (input == 'd')
            x++;
        if (input == 'w')
            y--;
        if (input == 's')
            y++;

        if (input == ' ')                //通过空格键来实现子弹的发射
            isfiled = 1;

        printf("score:%d", score);


    }

    system("pause");
    return 0;


}

 

你可能感兴趣的:(基础小游戏编程)