• 大小: 5KB
    文件类型: .xz
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: C/C++
  • 标签: C语言  Linux  贪吃蛇  

资源简介

新手初学Linux c 写的多线程人机一起的贪吃蛇,终端玩耍,解压,make,gcc就可以了,写的很差大神批评指正

资源截图

代码片段和文件信息

//
// Created by zong on 18-6-30.
//

#include “Head.h“

/*
 * 初始化地图墙用9表示空白用0
 */
void Map_Init(void)
{
    printf(“\033[2J“);            // 清屏
    system(“stty -icanon“);       // 关缓冲
    system(“stty -echo“);         // 关回显
    fprintf(stdout“\033[?25l“);  // 关闭鼠标显示

    //初始化行 列  墙用9数字标记 其他为0
    for (int i = 0; i < MAX_MAP_LINE; i++) {
        Snake_Map[0][i] = 9;
        Snake_Map[MAX_MAP_ROW-1][i] = 9;
    }
    for (int j = 0; j < MAX_MAP_ROW; j++) {
        Snake_Map[j][0] = 9;
        Snake_Map[j][MAX_MAP_LINE-1] = 9;
    }

}

/*
 * 游戏显示
 */
void show_game(void)
{
    // 定位到第一行第一列
    fprintf(stdout“\033[1;1H“);
    fflush(stdout);

    // 打印所有数据
    for (int i = 0; i < MAX_MAP_ROW; i++)
    {
        for (int j = 0; j < MAX_MAP_LINE; j++)
        {
            if (0 == Snake_Map[i][j])       // 空白区域
            {
                fprintf(stdout“  “);

            }
            else if (9 == Snake_Map[i][j])  // 边界区域
            {
                fprintf(stdout“\033[41m  \033[0m“);

            }
            else if(1 == Snake_Map[i][j])
            {
                fprintf(stdout“\033[42m  \033[0m“);
            }
            else if(2 == Snake_Map[i][j])
            {
                fprintf(stdout“\033[43m  \033[0m“);
            }
            else if(3 == Snake_Map[i][j])
            {
                fprintf(stdout“\033[44m  \033[0m“);
            }
        }
        fputc(‘\n‘stdout);
    }


}

/*
 * 游戏结束
 */
void game_over(void)
{

    /* 恢复终端设置 */
    system(“stty icanon“);          // 恢复缓冲
    system(“stty echo“);            // 恢复回显
    fprintf(stdout“\033[?25h“);    // 恢复鼠标显示

    /* 尾部处理 */
    fprintf(stdout“\033[200;1H“);  // 定位光标到最后一行

    exit(0);
}


/*
 * 释放蛇体
 */
void Desnake(snake_list *snakeList)
{
    snake *temp;
    while (NULL!=snakeList->top->next)
    {
        temp = snakeList->top;
        snakeList->top = snakeList->top->next;
        free(temp);
        temp = NULL;
    }
    free(snakeList->top);
    snakeList->top = NULL;
}



评论

共有 条评论