scratch贪吃蛇编程代码(scratch编程贪吃蛇小游戏)

http://www.itjxue.com  2023-03-24 12:32  来源:未知  点击次数: 

如何用慧编程做贪吃蛇代码

用慧编程做贪吃蛇代码过程如下:

1、我们需要建立四个头文件,然后分别设置蛇的状态,上下左右,这是蛇能够有方向可走的前提,然后我们再设置蛇身的节点,定义一个简单的函数,这样蛇的全身以及他的行走方向就弄完了。

2、贪吃蛇不能穿墙代码。

3、第二步,一个函数这个函数的目的是贪吃蛇不能穿墙,很简单的代码分别设置长宽的最大位移,在内部范围内设置为一即可通过,否则不能穿墙。贪吃蛇随机生成一个食物。

4、设置一个随机函数。这样贪吃蛇代码就做好了。

慧编程是一款面向STEAM教育领域的积木式和代码编程软件,基于图形化编程开发。

scratch贪吃蛇尾巴怎么做?

游戏工作过程。

键盘主要控制贪吃蛇的头部移动,尾巴是沿着轨迹移动就行。

贪吃蛇的身体,是用程序画笔模块画出来的。

如果头部吃到食物,就给游戏分数加分。

创建角色。

新建3个角色分别为“头部”“尾巴”“食物”。

(贪吃蛇角色的形状可以自己动手画画,但是要注意造型的中心点位置,否则身体和头尾会不一致)

创建分数变量。

新建一个变量,名称为“游戏分数”。

用来记录吃到的食物数量,以及游戏成绩。

创建轨迹列表。

新建3个列表,名称分别为“头部_坐标X”“头部_坐标Y”“头部_方向”。

用来记录贪吃蛇的移动轨迹,方便尾巴追随轨迹移动。

(将在舞台上的列表隐藏,以免影响舞台观看)

编写程序。

头部程序:键盘控制头部移动,画笔画下轨迹,并且列表记录头部的轨迹。

尾巴程序:按照轨迹列表移动,画笔画下背景色,保持贪吃蛇身体长度。

食物程序:碰到头部角色,代表食物被吃,改变自身位置,游戏加分。

最终游戏效果。

点击“绿色旗子”开始游戏,按下键盘的方向键,控制贪吃蛇移动。

吃到食物时,变量“游戏分数”就会加1分。

scratch编程贪吃蛇教程

scratch编程贪吃蛇教程:

1、首先,我们新建一个项目文件。

2、我们点击添加精灵按钮。

3、在弹出的对话框中,我们选绘制角色。

4、打开画图后,我们用方块工具绘制一个蓝色的方块,并导入舞台,命名为蛇。

5、用同样的方法,添加食物和橡皮擦。

6、我们选中蛇,在代码编辑区写入以下代码。

7、选中食物,在代码编辑区写入以下代码。

8、选中橡皮擦,代码编辑区写入以下代码。

贪食蛇是一款经典的休闲游戏。有PC和手机等多平台版本,既简单又耐玩。

scratch如何贪吃蛇变成食物

您好,使用Scratch来制作贪吃蛇游戏非常容易,只需要几个步骤就可以完成。首先,您需要创建一个新的Scratch项目,并且在画布上添加一个贪吃蛇的头部。然后,您需要添加一个可以控制贪吃蛇移动的脚本,并且在画布上添加一个食物。接下来,您需要添加一个脚本来控制食物的移动,使其能够随机出现在画布上的不同位置。最后,您需要添加一个脚本来检测贪吃蛇是否吃到了食物,如果吃到了,则贪吃蛇的长度会增加,如果没有吃到,则游戏继续进行。通过这些步骤,您就可以制作出一个完整的贪吃蛇游戏,让您的游戏更加有趣。

求贪吃蛇的程序代码(c语言)

贪吃蛇游戏的代码

#define N 200

#include graphics.h

#include stdlib.h

#include dos.h

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i,key;

int score=0;/*得分*/

int gamespeed=50000;/*游戏速度自己调整*/

struct Food

{

int x;/*食物的横坐标*/

int y;/*食物的纵坐标*/

int yes;/*判断是否要出现食物的变量*/

}food;/*食物的结构体*/

struct Snake

{

int x[N];

int y[N];

int node;/*蛇的节数*/

int direction;/*蛇移动方向*/

int life;/* 蛇的生命,0活着,1死亡*/

}snake;

void Init(void);/*图形驱动*/

void Close(void);/*图形结束*/

void DrawK(void);/*开始画面*/

void GameOver(void);/*结束游戏*/

void GamePlay(void);/*玩游戏具体过程*/

void PrScore(void);/*输出成绩*/

/*主函数*/

void main(void)

{

Init();/*图形驱动*/

DrawK();/*开始画面*/

GamePlay();/*玩游戏具体过程*/

Close();/*图形结束*/

}

/*图形驱动*/

void Init(void)

{

int gd=DETECT,gm;

initgraph(gd,gm,"c:\\tc");

cleardevice();

}

/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/

void DrawK(void)

{

/*setbkcolor(LIGHTGREEN);*/

setcolor(11);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/

for(i=50;i=600;i+=10)/*画围墙*/

{

rectangle(i,40,i+10,49); /*上边*/

rectangle(i,451,i+10,460);/*下边*/

}

for(i=40;i=450;i+=10)

{

rectangle(50,i,59,i+10); /*左边*/

rectangle(601,i,610,i+10);/*右边*/

}

}

/*玩游戏具体过程*/

void GamePlay(void)

{

randomize();/*随机数发生器*/

food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/

snake.life=0;/*活着*/

snake.direction=1;/*方向往右*/

snake.x[0]=100;snake.y[0]=100;/*蛇头*/

snake.x[1]=110;snake.y[1]=100;

snake.node=2;/*节数*/

PrScore();/*输出得分*/

while(1)/*可以重复玩游戏,压ESC键结束*/

{

while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/

{

if(food.yes==1)/*需要出现新食物*/

{

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/

food.x++;

while(food.y%10!=0)

food.y++;

food.yes=0;/*画面上有食物了*/

}

if(food.yes==0)/*画面上有食物了就要显示*/

{

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food.y-10);

}

for(i=snake.node-1;i0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/

switch(snake.direction)

{

case 1:snake.x[0]+=10;break;

case 2: snake.x[0]-=10;break;

case 3: snake.y[0]-=10;break;

case 4: snake.y[0]+=10;break;

}

for(i=3;isnake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/

{

if(snake.x[i]==snake.x[0]snake.y[i]==snake.y[0])

{

GameOver();/*显示失败*/

snake.life=1;

break;

}

}

if(snake.x[0]55||snake.x[0]595||snake.y[0]55||

snake.y[0]455)/*蛇是否撞到墙壁*/

{

GameOver();/*本次游戏结束*/

snake.life=1; /*蛇死*/

}

if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/

break;

if(snake.x[0]==food.xsnake.y[0]==food.y)/*吃到食物以后*/

{

setcolor(0);/*把画面上的食物东西去掉*/

rectangle(food.x,food.y,food.x+10,food.y-10);

snake.x[snake.node]=-20;snake.y[snake.node]=-20;

/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/

snake.node++;/*蛇的身体长一节*/

food.yes=1;/*画面上需要出现新的食物*/

score+=10;

PrScore();/*输出新得分*/

}

setcolor(4);/*画出蛇*/

for(i=0;isnake.node;i++)

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,

snake.y[i]-10);

delay(gamespeed);

setcolor(0);/*用黑色去除蛇的的最后一节*/

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

} /*endwhile(!kbhit)*/

if(snake.life==1)/*如果蛇死就跳出循环*/

break;

key=bioskey(0);/*接收按键*/

if(key==ESC)/*按ESC键退出*/

break;

else

if(key==UPsnake.direction!=4)

/*判断是否往相反的方向移动*/

snake.direction=3;

else

if(key==RIGHTsnake.direction!=2)

snake.direction=1;

else

if(key==LEFTsnake.direction!=1)

snake.direction=2;

else

if(key==DOWNsnake.direction!=3)

snake.direction=4;

}/*endwhile(1)*/

}

/*游戏结束*/

void GameOver(void)

{

cleardevice();

PrScore();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(200,200,"GAME OVER");

getch();

}

/*输出成绩*/

void PrScore(void)

{

char str[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

settextstyle(0,0,2);

sprintf(str,"score:%d",score);

outtextxy(55,20,str);

}

/*图形结束*/

void Close(void)

{

getch();

closegraph();

}

程序结束,请采纳

(责任编辑:IT教学网)

更多