美文网首页C语言学习
现在带着大家一起来做贪吃蛇游戏,想学的速度进

现在带着大家一起来做贪吃蛇游戏,想学的速度进

作者: 榆西带你飞 | 来源:发表于2017-05-13 13:34 被阅读128次

    贪吃蛇游戏游戏代码

    /*1 结构体保存蛇的信息  坐标  速度 长度

    2 .初始化

    3 .蛇的移动

    4.输出蛇的样子

    5.上下左右键盘 移动控制蛇的移动

    */

    #include

    #include//库函数

    #define FrameX 4//游戏左上角坐标  宏

    #define FrameY 4

    #define Frame_height 20//高和宽

    #define Frame_width 20

    int i;

    struct Snake

    {

    int x[100];//蛇的横纵坐标  0表示蛇尾

    int y[100];

    int length;//蛇的长度

    int speed;//蛇的速度

    };

    void init_snake(struct Snake * snake)

    {

    snake->x[0] = 10;//横纵坐标初始化

    snake->y[0] = 10;

    snake->length = 4;

    snake->speed = 300;

    for(i=1;ilength;i++)

    {

    snake->x[i] = snake->x[i-1] +2;//中文字符两个宽度

    snake->y[i] = snake->y[i-1];

    }

    }

    // 光标定位函数

    void GamePosition(HANDLE hout,int x,int y)

    {

    COORD pos;//也是类型

    pos.X = x;

    pos.Y = y;

    SetConsoleCursorPosition(hout,pos);//windows.h函数 把光标设置到pos处

    }

    //蛇的移动

    void move_snake(HANDLE hout,struct Snake *snake)

    {

    GamePosition(hout,snake->x[0],snake->y[0]);//定位到蛇尾

    printf("  ");//清除蛇尾

    //坐标取代

    for(i = 1;ilength;i++)

    {

    snake->x[i-1] = snake->x[i];

    snake->y[i-1] = snake->y[i];

    }

    }

    //c   linux的系统编程  3年权限  3个月一期

    //输出蛇□

    void show_snake(HANDLEhout,struct Snake * snake)

    {

    for(i=0;ilength;i++)

    {

    GamePosition(hout,snake->x[i],snake->y[i]);

    if(i == 0)

    printf("□");// 打印蛇尾

    else if(i == snake->length-1)//蛇头

    printf("◎");

    else//蛇身

    printf("●");

    }

    }

    void start_game()

    {

    system("cls");

    char ch;

    HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);//得到输出句柄

    struct Snake s,*snake  = &s;

    init_snake(snake);

    while(1)

    {

    ch = getch();

    switch(ch)

    {

    case 72://上

    move_snake(hout,snake);

    snake->y[snake->length-1] -= 1;//头纵坐标减一

    break;

    case 80://下

    move_snake(hout,snake);

    snake->y[snake->length-1] += 1;//纵坐标减一

    break;

    case 75://左

    move_snake(hout,snake);

    snake->x[snake->length-1] -= 2;//纵坐标减一

    break;

    case 77://右

    move_snake(hout,snake);

    snake->x[snake->length-1] += 2;//纵坐标减一

    break;

    }

    show_snake(hout,snake);

    }

    }

    int main()

    {

    //工作话

    start_game();

    return 0;

    }

    再多的文字也表达不完我们要学的东西,所以希望需要学习的朋友可以直接到腾讯课堂看视频学习。遇到问题可以加我们的学习群;群里面找老鸟给你们解答C/C++  JAVA 疑难杂题要编译器要离线视频可以加QQ群462127424群文件下载,记得加我好友哦QQ:2927929270

    相关文章

      网友评论

        本文标题:现在带着大家一起来做贪吃蛇游戏,想学的速度进

        本文链接:https://www.haomeiwen.com/subject/lpyxxxtx.html