C语言——贪吃蛇游戏&分模块(200行-易懂)

实现效果如图:

在这里插入图片描述
在这里插入图片描述

实现效果界面不是很美观,但核心内容都一样,具体如下.

在这里插入图片描述

模块一:创建地图

void createMap()
{
   
    int i=0;
    //打印上下边
    for(i=0+MOVE_CENTER;i<MAP_WIDTH+MOVE_CENTER;i+=2)
    {
   
    //打印最上面一条边
        gotoxy(i,0);    
        printf("■");
    //打印最下面一条边
        gotoxy(i,MAP_HEIGHT);
        printf("■");
    }

    //打印左右边
    for(i=0;i<MAP_HEIGHT+1;i++)
    {
   
    //打印左边
        gotoxy(0+MOVE_CENTER,i);    
        printf("■");
    //打印右边
        gotoxy(MAP_WIDTH+MOVE_CENTER,i);
        printf("■");   
    }
    gotoxy(0, 30);
    initSnake();
}

模块二:产生随机食物

void createFood()
{
   
    int i = 0;
    int isCreate = 1;//表示食物是否可以被创建
    srand(time(NULL));
    food.x = rand() % (MAP_WIDTH - 4 + 2) + MOVE_CENTER;
    food.y = rand() % (MAP_HEIGHT - 1 + 1);

    if (food.x % 2 == 0)
    {
   
        for (i = 0; i < snake.currentlen; i++)
        {
   
            if (snake.x[i] == food.x && snake.y[i] == food.y)
            {
   
                isCreate = 0;
            }
            if (isCreate)
            {
   
                gotoxy(food.x, food.y);
                printf("■");
                flag = 0;//为下次生成食物
                gotoxy(0, 30);
            }
        }
    }
    
}

模块三:初始化蛇身

void initSnake()
{
   
    int i = 0;
    snake.currentlen = INITLEN;
    snake.x[0] = MAP_WIDTH / 2 + MOVE_CENTER;
    snake.y[0] = MAP_HEIGHT / 2;

    gotoxy(snake.x[0], snake.y[0]);
    printf(SNAKE_HEAD);
    //打印出蛇身,将蛇身接到蛇头
    for (i = 1; i < snake.currentlen; i++)
    {
   
        snake.x[i] = snake.x[i - 1] + 2;
        snake.y[i] = snake.y[i - 1]
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值