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但是我的项目要求尾巴必须跟在头部后面,所以你能给我一些建议吗?尾巴会跟在头部后面。或者更准确地说,尾巴会跟在身体后面,身体会跟在头部已经追踪到的路径上。如果尾巴与身体的其他部分是不同的图形,那么事情会变得更复杂一些很复杂,你必须用新的符号重新绘制下一个到最后一个位置。但基本上还是相同的解决方案。除非这是一个不同于我想你描述的游戏。但是我的项目要求尾巴必须跟随头部,所以你能给我一些建议吗?尾巴会跟随头部。或者更多的建议准确地说,将沿着头部已经追踪到的路径跟随身体。如果尾巴是与身体其他部分不同的图形,那么事情会变得更复杂,你必须用新的标志符号重新绘制下一个到最后一个位置。但这基本上仍然是相同的解决方案。除非这是一个不同于我想你正在描述的那个。