首页 > 代码库 > 架构练习:c语言实现贪吃蛇(一):画地图和蘑菇

架构练习:c语言实现贪吃蛇(一):画地图和蘑菇

目前只是画地图,和根据当前时间随机生成蘑菇

下一步:

(1)实现类似于top的刷新方法

(2)实现蛇的行走

(3)实现蛇吃蘑菇的合并及新蘑菇的生成

(4)实现架构的修改和优化

root@ubuntu:/mnt/shared/appbox/snake# cat snake.c 
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>

#define GAME_WIDTH 50
#define GAME_HIGTH 25

int up_line_create()
{
        int i;
        for(i=0; i<GAME_WIDTH;i++)
        {
                printf("-");
        }
        printf("\n");
        return 0;
}

int bottom_line_create()
{
        int i;
        for(i=0; i<GAME_WIDTH;i++)
        {
                printf("-");
        }
        printf("\n");
        return 0;
}

int middle_line_create(int x_site, int y_site)
{
        int i, j;

        for(j=0;j<GAME_HIGTH;j++)
        {
                for(i=0;i<GAME_WIDTH;i++)
                {
                        if(i == x_site && j == y_site)
                        {
                                printf("*");
                        }
                        else if(0 == i)
                        {
                                printf("|");
                        }
                        else if(i== (GAME_WIDTH-1))
                        {
                                printf("|\n");
                        }
                        else 
                        {
                                printf(" ");
                        }
                }
        }

        return 0;
}

int target_create(int *x_site, int *y_site)
{
        int seconds= time((time_t*)NULL); 

        *y_site = abs(seconds*random())%GAME_HIGTH;
        *x_site = abs(seconds*random())%GAME_WIDTH;
        return 0;
}

int frame_create(void)
{
        int i, j;
        int x_site, y_site;

        target_create(&x_site, &y_site);

        printf("x:%d, y:%d\n", x_site, y_site);

        while(1)
        {
                up_line_create();

                middle_line_create(x_site, y_site);

                bottom_line_create();
                sleep(1);
        }

        return 0;
}

int main(int argc, char *argv[])
{
        frame_create();
        return 0;
}


架构练习:c语言实现贪吃蛇(一):画地图和蘑菇