导航:首页 > 教学教案 > 贪吃的蛇教案

贪吃的蛇教案

发布时间:2020-12-27 17:39:45

A. 一个app游戏 方框里面有几条蛇或者说是蚯蚓 把框里的蛇(蚯蚓)全都拉出来 这个游戏叫什么名字

贪吃🐍

B. 百科探秘 贪吃的蛇

这个网站上有网络探秘共58期节目(06年2月-5月)的BT下载包,其中就有“贪吃的蛇”这一回期:
http://www.kkbt.net/pages/2006/7/18/kkbt_item567745.html
如果你有迅雷的话答就可以选择这一期单独下载。

C. 贪吃好睡是什么生肖

你好,答案是蛇
在十二生肖中,蛇是唯一的冷血动物,所以生肖属蛇的人都有冷静的一版面,他是不善与权人吵架。从前据说有一个人养八条蛇,称之为八兄弟,有一天,他必须外出二个月才能回来,告诉蛇不要乱跑,结果二个月回来之後,发现八条蛇均不见了,他就卜封问个明白,结果一卜是兑封,表示蛇体还在,就到处寻找,发现八兄弟皆脱壳而去跑掉了,所以蛇的脱壳便称之为:「蜕」变,其道理在此。 五行:已属火 五常:火属礼 体缺:无足 优点: 有神秘浪漫斯文外表与熟炼处世态度,风度翩翩善於辞令很会钻营。 冷静沈着,具有特殊才能,有贯彻始终的斗志与精神。 不会炫耀自已才能而是暗自砥砺并按照计划逐步前进。

D. 贪吃蛇大作战和蛇蛇争霸哪个好玩

贪吃蛇大作战

E. 编一个童话故事贪吃的小蛇300个字

贪吃的小蛇故事
有一天,一条小蛇在森林里面散步,突然树上掉下来一个东西,它一看专,原来是一属个大苹果,它就“啊呜”一口吃掉了,结果小蛇变成了苹果蛇。
小蛇又往前走了一步,它又看到一根香蕉,小蛇“啊呜”把香蕉一口吃掉了,结果变成了香蕉蛇。

小蛇再往前走了走,又看到了饭团,它跑过去“啊呜”一大把饭团口吃完了,变成了饭团蛇。
小蛇又往前走了一大步,看到了葡萄,它又“啊呜”把葡萄吃完了,变成了葡萄蛇,小蛇又吃了菠萝,变成了菠萝蛇,小蛇吃了那么多了东西,终于吃饱了。

F. C语言课程设计,贪吃蛇应该怎么做

2.1程序功能介绍

贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

2.2程序整体设计说明

一个游戏要有开始部分,运行部分,结束部分(实际上开始部分与运行部分是一体的)。

2.2.1设计思路

这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块

2.2.2数据结构设计及用法说明

开始部分:

游戏是运行在图形模式下的,所以第一步一定是初始化图形模式,接着要有开始的界面,就像书有封面一样,我设置了一个游戏的标题画面,除了游戏标题画面我还设置了一个欢迎画面。标题画面以后,还要为游戏的运行部分作初始化,包括绘制游戏运行时的背景,对游戏某些重 要变量的初始化。

运行部分:

作为游戏的核心部分,这里包括的函数比较多,也就是模块比较多,首先让我模拟一下贪吃蛇的游戏模式:某个世界上突然出现一条蛇,它很短,它的运动神经异常,它没法停止自己的多动症在它的世界里就只有食物,它很饿,也很贪吃;同样在不明原因的情况下,食物从天而降,可惜的是没有落到嘴边;饥饿的主人公,不管它有没有毒,也不问食物的来历,径直向食物爬去;它吃到食物啦,它超出想象的同化能力让食物很快的成为自己身体的一部分,它的身子变长啦。当它吃到第一颗食物时,上帝有给它第二颗,于是它吃了第二颗,于是又变长了,于是又有第三颗……它的身子是一直的加长,它不管自己过长身体的麻烦——转身不便,继续吃下去,现在它是直接把巴张大,好让食物有个绿色通道。但是在某天的下午,它咬到了自己,它才想起自己是一条毒蛇,于是晕死过去(不是毒死);又或者它往食物冲锋的时候,它失去控制,撞到了墙上。

第一轮循环:第一步,出现食物;第二步,蛇不停运动;第三步,检查蛇是撞到自己或墙壁;由第四步起游戏有两条支线(A、B):

A :第四步,蛇没有碰到自己或墙壁,蛇继续前进,绘制蛇的动作;第五步,判断蛇是否吃到食物,如果蛇吃到食物,身子变长,原来的食物消失;第六步,让玩家输入控制指令,让蛇在下一轮循环的第二步改变运动方向;第七步,第二轮循环的第一步,重复第一轮的步骤;

B:第四步,蛇碰到自己或墙壁,终止游戏。

结束部分:

游戏结束时,显示“GAME OVER”,已经是约定俗成的规律了,我的游戏也不例外。除了游戏结束画面外,我还设置了一个游戏退出画面,“善始善终”嘛。

有了上述的大致划分,我把整个程序划分成(13+2)个模块(其实就是函数)

2.2.3程序结构(流程图)

图2.1流程图

依据所需要处理的任务要求,规划输入数据和输出结果,决定存放数据的数据结构。

C语言中数据结构集中体现在数据类型上,因此在进行C语言程序设计时,应统筹规划程序中所使用的变量,数组,指针等,以及它们的类型等。这点是很重要的,如果在此期间选择不合适的变量或者数组,将来修改就十分困难。

现在分析一下贪吃蛇游戏中的元素,继而得出与它们对应的在程序中的描述:

蛇:

基本描述:长度,颜色,位置。

对应数据与数据类型:长度—虽然可以用坐标表示,但是这样的话,运算量将很大,所以换算成较大的单位—节数,以固定长度的每节描述;坐标--整型;颜色--整型; 位置--X,Y坐标。

增加的描述:蛇运动的方向,蛇的生命。

对应数据与数据类型:这些描述是为了与程序的按键的输入部分与判断游戏结束部分相联系而设的。方向只有四个方向:上下左右。可以设置与之对应的四个整型数:3、4、2、1。生命就只有两种情况:死或生,对应0或1。

食物:

基本描述:颜色,位置。

对应数据与数据类型:由于颜色设成固定的,所以不再讨论。位置—X、Y坐标。

增加的描述:食物的存在。

对应数据与数据类型:这是为了避免重复出现食物而设置的,与绘制食物的函数有联系。只有两个值:0或1(没有食物或有食物)

其他的元素:墙,由于它在显示上是作为背景而存在的,所以并没有什么说明实际的墙壁就是四条直线组成的边框,由坐标描述。

还需要的变量:键盘键入的键值(作为全局变量,整型);经常要使用的循环变量;自定义的填充图案;说明文字的字符数组;游戏的记分;游戏的速度(蛇的速度)。

图2.2蛇的不停运动的关键算法的流程图

2.2.4各模块的功能及程序说明

主要模块的实现思路和算法的流程图说明:

关键所在——蛇不停移动的Snakemove():

蛇的不停移动,就是蛇的下一节取代前一节的位置,在计算机中就是蛇下一节的位置坐标变成前一节的位置坐标。在上文中,已定义蛇的位置坐标为数组类型,一组坐标对应一节的位置,假设有i+1节,由0到i节,第i节的坐标取第i-1节的坐标,第i-1节的坐标取第i-2节的坐标……直到第1节取第0节的坐标。而第0节的坐标,即蛇头的坐标要往某个方向变化,变化量为蛇每节的长度。蛇的这种坐标轮换需要循环语句使其继续下去。

2.2.5程序结果

运行程序得到如下初始界面图:

图2.3程序结果图

用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示:

图2.4程序结果图

蛇没有碰到自己或墙壁,蛇继续前进:

图2.5程序结果图

游戏结束时,显示“GAME OVER”

图2.6程序结果图

2.3程序源代码及注释

#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;

registerbgidriver(EGAVGA_driver);

initgraph(&gd,&gm,"c:\program files\winyes\tc20h\bgi");

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;i>0;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;i<snake.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.x&&snake.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;i<snake.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==UP&&snake.direction!=4)

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

snake.direction=3;

else

if(key==RIGHT&&snake.direction!=2)

snake.direction=1;

else

if(key==LEFT&&snake.direction!=1)

snake.direction=2;

else

if(key==DOWN&&snake.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();

}

G. 我是贪吃″蛇″作文400字

我叫张忆文,今年11岁,我的特点是作文写的还好,不过,我就是非常贪吃。如果我做完作业内,就吃个不容停,除非我吃得已经吃不下了,我才会放下手中的零食,慢慢地去找作文书看,下面就是我要讲的一个故事。
在我10岁那年,爸爸妈妈正在烧年夜菜,妈妈让姐姐去超市买零食,姐姐只好去了。不一会儿,姐姐拎着一大袋零食回来了。“哇,这么多零食啊。”我自言自语说。正巧,天赐良机,爸爸妈妈和姐姐都不在,我悄悄地打开塑料袋,拿出一包“糖果”,打开“糖果袋”,拿出一粒“糖果”,放进嘴巴里,哇,糖果怎么那么咸,我仔细一看,原来是食盐,不是糖,那我刚才吃的是盐块,怪不得那么咸。于是,我拿出一瓶“木糖醇”,打开瓶盖,拿出一粒“木糖醇”,马上放进嘴巴里,啊,木糖醇怎么这么苦,我看了看名称,什么,怎么是药片啊。妈妈发现我在偷吃,就火冒三丈地说:“等会你不能吃零食。”吃完年夜饭,我就眼睁睁地看着姐姐吃零食,我的口水流下三千尺,那种滋味儿可不好受。同学们,请你们别像我那么贪吃。

H. 贪吃的成语

成语贪吃懒做
好吃而不肯好好工作。

成语好吃懒做好:喜欢、贪于。贪于吃喝,懒于做事。

成语贪多嚼不烂贪图多吃,消化不了。比喻工作或学习,图多而做不好或吸收不了。

成语猪八戒吃人参果,全不知滋味
比喻吃东西狼吞虎咽,来不及细尝。也比喻看书做事贪多务得,实则无所收获

成语饕口馋舌比喻贪吃的人。

成语饕餮之徒比喻贪吃的人。

成语馋涎欲垂形容贪吃的样子 馋:嘴馋;涎:口水;欲:将要。馋得要往下滴口水。指人嘴馋,形容人眼红。

成语馋涎欲滴形容贪吃的样子 涎:口水。馋得口水都要滴下来了。形容极其贪馋的样子。也形容非常眼红。

成语香饵之下,必有死鱼
指游鱼必为贪吃得饵而死。比喻引诱和会使人上当。

成语香饵死鱼指游鱼必为贪吃得饵而死。比喻引诱和会使人上当。

成语净盘将军盘:盘子。指十分贪吃的人。

成语吃人不吐骨头比喻又残暴,又贪婪。

成语吃着碗里,瞧着锅里比喻贪心不足。

成语吃着碗里瞧着锅里比喻贪心不足。

成语咂嘴咂舌形容贪吃的馋相。亦表示食物味道美好。

成语多吃多占指贪婪 凭权势或用不正当手段侵占国家或集体利益,捞取额外收入。

成语尽盘将军盘:食盘。比喻非常贪吃的人。

成语食指大动原指有美味可吃的预兆,后形容看到有好吃的东西而贪婪的样子。

成语西食东眠在西家吃饭,在东家睡觉。比喻贪利的人企图兼有两利。

成语一口不能著两匙匙:汤匙。一张嘴同时要吃两把汤匙里的食物。比喻贪多

成语一蛇吞象一条蛇想吞吃一条大象。比喻人心不足,贪得无厌。

成语巴蛇吞象巴蛇:古代传说中的大蛇。巴蛇吞吃大象。比喻贪得无厌。

成语文恬武嬉恬:安闲;嬉:玩乐。文官安闲自得,武官游荡玩乐。指官吏只知贪图安逸享受,吃喝玩乐,不关心国事。

成语羊破菜园平时常吃疏菜,偶然猛食羊肉,好像被羊踏破肚皮一样。比喻偶贪荤食而致腹疾。

I. 用C语言写了贪吃的蛇可是左右显示和上下显示不一样,,求大牛解决。。。给点意见。。

前面定义的复是结点和食物,然后制while循环一直运行,然后,里面要是和食物的位置一样就添加,就这么简单.

while(pt->next!=NULL)
pt=pt->next ;
p->pre= pt;
pt->next = p;
p->next=NULL;
rear=p;

阅读全文

与贪吃的蛇教案相关的资料

热点内容
北京高中作文耐心 浏览:59
变作文600字初中 浏览:660
2011台州中考语文 浏览:250
识字一的教案 浏览:85
语文作业本凡卡答案 浏览:619
300书信作文大全 浏览:227
苏教版五年级语文下册补充成语ppt 浏览:891
爱的方式作文开头结尾 浏览:694
端午节的作文600字初中 浏览:70
3年级上册语文作业本答案 浏览:265
高考语文与小学的联系 浏览:965
2015北京语文中考答案 浏览:979
双分点地步法教学 浏览:714
小学二年级作文辅导课 浏览:693
关于成功条件的作文素材 浏览:848
建军节作文的结尾 浏览:88
五年级下册语文mp3在线收听 浏览:696
ie教案6 浏览:907
三年级语文培优补差计划 浏览:679
二胡独奏一枝花教学 浏览:525