贪吃蛇从1到30关,贪吃的苹果蛇第30关怎么过 第30关通关攻略

发布时间: 作者:konglu 来源:恒高手游网

大家好,感谢邀请,今天来为大家分享一下贪吃蛇从1到30关的问题,以及和贪吃的苹果蛇第30关怎么过 第30关通关攻略的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

一、c语言 贪吃蛇 程序

基本思路:

蛇每吃一个食物蛇身子就增加一格,用UP, DOWN, LEFT, RIGHT控制蛇头的运动,而蛇身子跟着蛇头走,每后一格蛇身子下一步走到上一格蛇身子的位置,以此类推。

#include<stdio.h>

#include<conio.h>

#include<windows.h>

#define BEG_X 2

#define BEG_Y 1

#define WID 20

#define HEI 20

HANDLE hout;

typedef enum{UP, DOWN, LEFT, RIGHT} DIR;

typedef struct Snake_body

{

COORD pos;//蛇身的位置

struct Snake_body*next;//下一个蛇身

struct Snake_body*prev;//前一个蛇身

}SNAKE,*PSNAKE;

PSNAKE head= NULL;//蛇头

PSNAKE tail= NULL;//蛇尾

//画游戏边框的函数

void DrawBorder()

{

int i, j;

COORD pos={BEG_X, BEG_Y};

for(i= 0; i< HEI;++i)

{

SetConsoleCursorPosition(hout, pos);

for(j= 0; j< WID;++j)

{

if(i== 0)//第一行

{

if(j== 0)

printf("┏");

else if(j== WID- 1)

printf("┓");

else

printf("━");

}

else if(i== HEI- 1)//最后一行

{

if(j== 0)

printf("┗");

else if(j== WID- 1)

printf("┛");

else

printf("━");

}

else if(j== 0|| j== WID- 1)//第一列或最后一列

printf("┃");

else

printf("");

}

++pos.Y;

}

}

//添加蛇身的函数

void AddBody(COORD pos)

{

PSNAKE pnew=(PSNAKE)calloc(1, sizeof(SNAKE));

pnew->pos= pos;

if(!head)

{

head= tail= pnew;

}

else

{

pnew->next= head;//新创建蛇身的next指向原先的蛇头

head->prev= pnew;//原先的蛇头的prev指向新创建的蛇身

head= pnew;//把新创建的蛇身作为新的蛇头

}

SetConsoleCursorPosition(hout, head->pos);

printf("◎");

}

//蛇身移动的函数

void MoveBody(DIR dir)

{

PSNAKE ptmp;

COORD pos= head->pos;

switch(dir)

{

case UP:

if(head->pos.Y> BEG_Y+ 1)

pos.Y;

else

return;

break;

case DOWN:

if(head->pos.Y< BEG_Y+ HEI- 2)

++pos.Y;

else

return;

break;

case LEFT:

if(head->pos.X> BEG_X+ 2)

pos.X-= 2;

else

return;

break;

case RIGHT:

if(head->pos.X< BEG_X+(WID- 2)* 2)

pos.X+= 2;

else

return;

break;

}

AddBody(pos);//添加了一个新的蛇头

ptmp= tail;//保存当前的蛇尾

tail= tail->prev;

if(tail)

tail->next= NULL;

SetConsoleCursorPosition(hout, ptmp->pos);

printf("");

free(ptmp);

}

int main()

{

int ctrl;

DIR dir= RIGHT;//初始蛇的方向是向右的

COORD pos={BEG_X+ 2, BEG_Y+ HEI/ 2};

system("color 0E");

system("mode con cols=90 lines=30");

hout= GetStdHandle(STD_OUTPUT_HANDLE);

printf("------------贪吃蛇的移动------------");

DrawBorder();

//自定义几个蛇的身体

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

//控制蛇的移动

while(ctrl= getch())

{

switch(ctrl)

{

case'w':

if(dir== DOWN)

continue;

dir= UP;

break;

case's':

if(dir== UP)

continue;

dir= DOWN;

break;

case'a':

if(dir== RIGHT)

continue;

dir= LEFT;

break;

case'd':

if(dir== LEFT)

continue;

dir= RIGHT;

break;

case'q':

return 0;

}

MoveBody(dir);

}

return 0;

}

扩展资料:

实现逻辑

1,可以设置光标,就能实现制定位置打印制定符号。

2,涉及一个结构体,包含两个元素坐标元素和一个结构体指针。

3,结构体串联形成链表,遍历获取成员坐标,打印符号得到蛇身。

4,不断的加头,去尾,重新遍历坐标,再打印形成蛇的移动。

5,食物产生的位置判定,不能越界,也不能与蛇身体重合。

6,蛇的转向判定,一条规则,不允许倒退。

7,转向的实现,跟行进方向决定新的关节坐标(当前头的上下左右)

8,死亡检测,是否头节点坐标是否与墙壁重合,是否与身体其他关节重合。

9,加速减速,设置刷新休眠时间实现。

参考资料来源:百度百科-C语言

二、c语言贪吃蛇代码

基本思路:

蛇每吃一个食物蛇身子就增加一格,用UP, DOWN, LEFT, RIGHT控制蛇头的运动,而蛇身子跟着蛇头走,每后一格蛇身子下一步走到上一格蛇身子的位置,以此类推。

#include<stdio.h>

#include<conio.h>

#include<windows.h>

#define BEG_X 2

#define BEG_Y 1

贪吃蛇从1到30关,贪吃的苹果蛇第30关怎么过 第30关通关攻略

#define WID 20

#define HEI 20

HANDLE hout;

typedef enum{UP, DOWN, LEFT, RIGHT} DIR;

typedef struct Snake_body

{

COORD pos;//蛇身的位置

struct Snake_body*next;//下一个蛇身

struct Snake_body*prev;//前一个蛇身

}SNAKE,*PSNAKE;

PSNAKE head= NULL;//蛇头

PSNAKE tail= NULL;//蛇尾

//画游戏边框的函数

void DrawBorder()

{

int i, j;

COORD pos={BEG_X, BEG_Y};

for(i= 0; i< HEI;++i)

{

SetConsoleCursorPosition(hout, pos);

for(j= 0; j< WID;++j)

{

if(i== 0)//第一行

{

if(j== 0)

printf("┏");

else if(j== WID- 1)

printf("┓");

else

printf("━");

}

else if(i== HEI- 1)//最后一行

{

if(j== 0)

printf("┗");

else if(j== WID- 1)

printf("┛");

else

printf("━");

}

else if(j== 0|| j== WID- 1)//第一列或最后一列

printf("┃");

else

printf("");

}

++pos.Y;

}

}

//添加蛇身的函数

void AddBody(COORD pos)

{

PSNAKE pnew=(PSNAKE)calloc(1, sizeof(SNAKE));

pnew->pos= pos;

if(!head)

{

head= tail= pnew;

}

else

{

pnew->next= head;//新创建蛇身的next指向原先的蛇头

head->prev= pnew;//原先的蛇头的prev指向新创建的蛇身

head= pnew;//把新创建的蛇身作为新的蛇头

}

SetConsoleCursorPosition(hout, head->pos);

printf("◎");

}

//蛇身移动的函数

void MoveBody(DIR dir)

{

PSNAKE ptmp;

COORD pos= head->pos;

switch(dir)

{

case UP:

if(head->pos.Y> BEG_Y+ 1)

pos.Y;

else

return;

break;

case DOWN:

if(head->pos.Y< BEG_Y+ HEI- 2)

++pos.Y;

else

return;

break;

case LEFT:

if(head->pos.X> BEG_X+ 2)

pos.X-= 2;

else

return;

break;

case RIGHT:

if(head->pos.X< BEG_X+(WID- 2)* 2)

pos.X+= 2;

else

return;

break;

}

AddBody(pos);//添加了一个新的蛇头

ptmp= tail;//保存当前的蛇尾

tail= tail->prev;

if(tail)

tail->next= NULL;

SetConsoleCursorPosition(hout, ptmp->pos);

printf("");

free(ptmp);

}

int main()

{

int ctrl;

DIR dir= RIGHT;//初始蛇的方向是向右的

COORD pos={BEG_X+ 2, BEG_Y+ HEI/ 2};

system("color 0E");

system("mode con cols=90 lines=30");

hout= GetStdHandle(STD_OUTPUT_HANDLE);

printf("------------贪吃蛇的移动------------");

DrawBorder();

//自定义几个蛇的身体

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

pos.X+= 2;

AddBody(pos);

//控制蛇的移动

while(ctrl= getch())

{

switch(ctrl)

{

case'w':

if(dir== DOWN)

continue;

dir= UP;

break;

case's':

if(dir== UP)

continue;

dir= DOWN;

break;

case'a':

if(dir== RIGHT)

continue;

dir= LEFT;

break;

case'd':

if(dir== LEFT)

continue;

dir= RIGHT;

break;

case'q':

return 0;

}

MoveBody(dir);

}

return 0;

}

扩展资料:

实现逻辑

1,可以设置光标,就能实现制定位置打印制定符号。

2,涉及一个结构体,包含两个元素坐标元素和一个结构体指针。

3,结构体串联形成链表,遍历获取成员坐标,打印符号得到蛇身。

4,不断的加头,去尾,重新遍历坐标,再打印形成蛇的移动。

5,食物产生的位置判定,不能越界,也不能与蛇身体重合。

6,蛇的转向判定,一条规则,不允许倒退。

7,转向的实现,跟行进方向决定新的关节坐标(当前头的上下左右)

8,死亡检测,是否头节点坐标是否与墙壁重合,是否与身体其他关节重合。

9,加速减速,设置刷新休眠时间实现。

参考资料来源:百度百科-C语言

三、贪吃的苹果蛇第30关怎么过 第30关通关攻略

在《贪吃的苹果蛇》中很多玩家还不清楚第30关怎么过。接下来就让小编给大家带来《贪吃的苹果蛇》第30关通关攻略,感兴趣的小伙伴们一起来看看吧。

《贪吃的苹果蛇》第30关通关攻略

1、先把头上的石头向顶一格,然后吃掉左侧的苹果,

2、然后向中间移一格,吃掉上方的苹果后向右上移动吃掉最上边的苹果,

3、然后向左移动一格后左侧石头会掉落在苹果上方,我们移动到石头左侧把它顶到中间

4、然后我们从画面下方通过吃掉最后两个苹果

5、最后走右侧把右侧的石头也顶到中间,我们走到石头的上方直行就可以走到黑洞。

游戏玩法

1、玩家可以自由的进行控制,因为贪吃蛇是拥有机械的身体,所以是跟经典的贪吃蛇操作不一样的;

2、贪吃蛇只有几节身体,每节身体都会弯曲,将会带来非常有趣的折叠形状,带来更加趣味的控制玩法;

3、所有的难度都是越来越难,越到后续的游戏关卡,都将会带来更加困难的过程,玩家需要适应节奏;

4、拥有不同的平台,玩家需要控制贪吃蛇越过缝隙,才能安全的到达其中的大门位置,破解其中的关卡。

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​以上就是《贪吃的苹果蛇》第30关通关攻略,更多游戏攻略请持续关注游戏网!​​​​​​​​

OK,关于贪吃蛇从1到30关和贪吃的苹果蛇第30关怎么过 第30关通关攻略的内容到此结束了,希望对大家有所帮助。

相关文章
推荐游戏
航海与家园
航海与家园
手游攻略 382.5M
下载
守护神域
守护神域
手游攻略 18.2M
下载
斗罗大陆3
斗罗大陆3
手游攻略 566.9M
下载
如梦下弦月
如梦下弦月
手游攻略 840.1M
下载
风之谷
风之谷
手游攻略 10.5M
下载
古剑世界
古剑世界
手游攻略 77.2M
下载