c语言中的蛇游戏

c语言中的蛇游戏,c,C,我有一个蛇游戏项目,但现在我需要找到一种方法使尾巴跟随头部,我已经先做了头部,但我仍然不知道如何使尾巴跟随头部,我知道我必须使尾巴跟随头部之前的坐标,但我找不到一种方法 这是我的密码 #include <stdio.h> #include <stdlib.h> #include <conio.h> int side; char map[20][20]; int z=5,c=5; //the starting position of the head int

我有一个蛇游戏项目,但现在我需要找到一种方法使尾巴跟随头部,我已经先做了头部,但我仍然不知道如何使尾巴跟随头部,我知道我必须使尾巴跟随头部之前的坐标,但我找不到一种方法

这是我的密码

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int side;
char map[20][20];
int z=5,c=5; //the starting position of the head
int p=0;
void snake(char map[20][20],int ,int )
{
    if(p==0)
    {
        p++;
    for(int x=0;x<side;x++)
        {
            map[z][c]='X';

           printf("%s\n",map[x]);
        }
    }
    int hc,hb,t,r,j,u,i;
    hc=getch();
    hb=getch();
    if(hb==72)//up
    {
        z--;

    }
    else if(hb==77)//right
    {
        c++;

    }
    else if(hb==80)//down
    {   
        z++;
    }
    else if(hb==75)//left
    {
        c--;

    }
    map[z][c]='X';


    system("CLS");  
}

void square(){
        int x,y;

        for(x=0;x<side;x++){
                for(y=0;y<side;y++){

                        if(x==0||x==side-1||y==0||y==side-1){
                                map[x][y]='X';
                        }

                        else{
                                map[x][y]=' ';
                        }
                }
        }
        snake(map,x,y);
} 

void print(){
        for(int x=0;x<side;x++){
                printf("%s\n",map[x]);
        }
}

int main()
{

    printf("Input the large = ");
    scanf("%d",&side); 
    fflush(stdin);
    system("CLS");
    while(true)
    {
    square();
    print();
    }
    getchar();

}
#包括
#包括
#包括
内侧;
字符映射[20][20];
int z=5,c=5//头部的起始位置
int p=0;
虚空蛇(字符映射[20][20],整数,整数)
{
如果(p==0)
{
p++;

对于(int x=0;x在大多数这样的游戏中,你实际上不必让尾巴跟随头部——你只需在前面添加一个新的x,将头部延伸一步,然后删除尾部的最后一个x,将其缩短一步。这将问题简化为只需要知道过去的坐标是什么,无论如何,你都需要知道过去的坐标,以保持蛇向前移动在大多数这样的游戏中,你实际上不必让尾巴跟随头部——你只需在前面添加一个新的X,将头部延长一步,然后删除尾部的最后一个X,将其缩短一步。这就把问题简化为只需要知道过去的坐标是什么,你无论如何都需要它来保持t但是我的项目要求尾巴必须跟在头部后面,所以你能给我一些建议吗?尾巴会跟在头部后面。或者更准确地说,尾巴会跟在身体后面,身体会跟在头部已经追踪到的路径上。如果尾巴与身体的其他部分是不同的图形,那么事情会变得更复杂一些很复杂,你必须用新的符号重新绘制下一个到最后一个位置。但基本上还是相同的解决方案。除非这是一个不同于我想你描述的游戏。但是我的项目要求尾巴必须跟随头部,所以你能给我一些建议吗?尾巴会跟随头部。或者更多的建议准确地说,将沿着头部已经追踪到的路径跟随身体。如果尾巴是与身体其他部分不同的图形,那么事情会变得更复杂,你必须用新的标志符号重新绘制下一个到最后一个位置。但这基本上仍然是相同的解决方案。除非这是一个不同于我想你正在描述的那个。