资源简介


资源截图

代码片段和文件信息

#include 
#include “snake.h“
#include 

int main(int argc char const *argv[])
{
    initgraph(MAP_WIDTH MAP_HEIGHT 0);
    // ?????????????????????
    setbkcolor(WHITE);
    map();
    // ????§????
    Node *head = initSnake(4);
    // ?????°?????????
    printSnake(head);
    while (1)
    {
        move(head);
        printSnake(head);
        // ??????????§????
        delay_ms(500);
        // ??¤???????????????é??????????? ????°???§?????????
        if (kbhit())
        {
            direction = getch();
        }
    }

    getch();
    closegraph();
    return 0;
}

// ?§???¨
void move(Node *head)
{
    Node *p = head;
    // ??????????????????????????????
    int prex = p->coord.X;
    int prey = p->coord.Y;
    // ?????????????????????
    int curx cury;
    // ????????????????¤???????????????????
    switch (direction)
    {
    case ‘w‘:
        p->coord.Y--;
        break;
    case ‘s‘:
        p->coord.Y++;
        break;
    case ‘a‘:
        p->coord.X--;
        break;
    case ‘d‘:
        p->coord.X++;
        break;
    }
    while (p->next)
    {
        p = p->next;
        // ????????????????????????
        curx = p->coord.X;
        cury = p->coord.Y;
        // ?????????????????????????????????
        p->coord.X = prex;
        p->coord.Y = prey;
        // ????????????????????????????????????????????????
        prex = curx;
        prey = cury;
    }
    // ???é?¤????????????????????????
    // PIMAGE img = newimage();
    // getimage(img “D:/EC15/CODE/Snake/Black.png“);
    // putimage(curx * IMG_WIDTH cury * IMG_WIDTH img);
    // delimage(img);
    setcolor(WHITE);
    setfillcolor(WHITE);
    bar(curx * IMG_WIDTH cury * IMG_WIDTH
        (curx + 1) * IMG_WIDTH (cury + 1) * IMG_WIDTH);
}

// ?????°?????????
void printSnake(Node *head)
{
    PIMAGE img = newimage();
    getimage(img “D:/EC15/CODE/Snake/snake.png“);
    Node *p = head;
    while (p)
    {
        printf(“x = %d y = %d\n“ p->coord.X p->coord.Y);
        putimage(p->coord.X * IMG_WIDTH p->coord.Y * IMG_WIDTH img);
        p = p->next;
    }
    delimage(img);
}

// ????§?????????????
Node *initSnake(int length)
{
    // ????¤???????
    Node *head = (Node *)malloc(sizeof(Node));
    head->coord.X = 10;
    head->coord.Y = 10;
    head->next = NULL;
    // ?°????é?? ??????é????¨??????????????????
    Node *tail = head;
    // ??????
    for (int i = 1; i < length; i++)
    {
        // ????????°???????????????
        Node *newNode = (Node *)malloc(sizeof(Node));
        newNode->coord.X = 10 - i;
        newNode->coord.Y = 10;
        newNode->next = NULL;
        // ?°?????????????é?????????????°??????
        tail->next = newNode;
        // ?°????é??????????°??????
        tail = newNode;
    }
    return head;
}

// ?????°??°???
void map()
{
    PIMAGE img = newimage();
    getimage(img

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-08-24 08:58  Snake\
     文件          86  2020-08-19 22:04  Snake\Black.png
     文件         845  2020-08-19 22:04  Snake\food.png
     文件        3331  2020-10-26 20:10  Snake\snake.c
     文件         422  2020-08-24 10:25  Snake\snake.h
     文件        1335  2020-08-19 22:04  Snake\snake.png
     文件         306  2020-08-19 22:04  Snake\wall.png

评论

共有 条评论