三九宝宝网宝宝教育教学论文

C语言的贪吃蛇源代码

03月08日 编辑 39baobao.com

[c语言贪吃蛇程序]/* 贪吃蛇程序 by champking */#define N 200#include#include#include#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b...+阅读

//******友情提示:如想速度快点,请改小_sleep(500)函数中参数***** #include#include#include#include#includeconst int H = 8; //地图的高 const int L = 16; //地图的长 char GameMap[H][L]; //游戏地图 int key; //按键保存 int sum = 1, over = 0; //蛇的长度, 游戏结束(自吃或碰墙) int dx[4] = {0, 0, -1, 1}; //左、右、上、下的方向 int dy[4] = {-1, 1, 0, 0}; struct Snake //蛇的每个节点的数据类型 { int x, y; //左边位置 int now; //保存当前节点的方向, 0,1,2,3分别为左右上下 }Snake[H*L]; const char Shead = ''; //蛇头 const char Sbody = '#'; //蛇身 const char Sfood = '*'; //食物 const char Snode = '.'; //'.'在地图上标示为空 void Initial(); //地图的初始化 void Create_Food(); //在地图上随机产生食物 void Show(); //刷新显示地图 void Button(); //取出按键,并判断方向 void Move(); //蛇的移动 void Check_Border(); //检查蛇头是否越界 void Check_Head(int x, int y); //检查蛇头移动后的位置情况 int main() { Initial(); Show(); return 0; } void Initial() //地图的初始化 { int i, j; int hx, hy; system("title 贪吃蛇"); //控制台的标题 memset(GameMap, '.', sizeof(GameMap)); //初始化地图全部为空'.' system("cls"); srand(time(0)); //随机种子 hx = rand()%H; //产生蛇头 hy = rand()%L; GameMap[hx][hy] = Shead; Snake[0].x = hx; Snake[0].y = hy; Snake[0].now = -1; Create_Food(); //随机产生食物 for(i = 0; i

(1) { fx = rand()%H; fy = rand()%L; if(GameMap[fx][fy] == '.') //不能出现在蛇所占有的位置 { GameMap[fx][fy] = Sfood; break; } } } void Show() //刷新显示地图 { int i, j; while

(1) { _sleep(500); //延迟半秒(1000为1s),即每半秒刷新一次地图 Button(); //先判断按键在移动 Move(); if(over) //自吃或碰墙即游戏结束 { printf("\n**游戏结束**\n"); printf(" >_= H || Snake[0].y= L) over = 1; } void Check_Head(int x, int y) //检查蛇头移动后的位置情况 { if(GameMap[ Snake[0].x ][ Snake[0].y ] == '.') //为空 GameMap[ Snake[0].x ][ Snake[0].y ] = ''; else if(GameMap[ Snake[0].x ][ Snake[0].y ] == '*') //为食物 { GameMap[ Snake[0].x ][ Snake[0].y ] = ''; Snake[sum].x = x; //新增加的蛇身为蛇头后面的那个 Snake[sum].y = y; Snake[sum].now = Snake[0].now; GameMap[ Snake[sum].x ][ Snake[sum].y ] = '#'; sum++; Create_Food(); //食物吃完了马上再产生一个食物 } else over = 1; }

求贪吃蛇C语言代码

原发布者:西瓜萝卜饭lala

#include

#include

#include

#include

#include

#include

#include

#defineN21

charapple[2];

chartail[2];

char**snake=NULL;

intscore=0;

intlen=3;

charmax=0;

voidgotoxy(intx,inty)//输出坐标

{

COORDpos;

pos.X=x;

pos.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);

voidcolor(intb)//颜色函数

{

HANDLEhConsole=GetStdHandle((STD_OUTPUT_HANDLE));

SetConsoleTextAttribute(hConsole,b);

intblock(charhead[2])//判断出界

{

inti;

if((head[0]N)(head[1]N))return1;//判断出界

for(i=1;i

if(snake[0][0]==snake[i][0]&&snake[0][1]==snake[i][1])return1;//判断是否碰到自己的身体

return0;

inteat()//判断吃苹果

{

if(snake[0][1]==apple[1]&&snake[0][0]==apple[0])

{

apple[0]=apple[1]=0;

gotoxy(N*2+10,9);

color(14);

score++;

printf("你现在得分:%d",score*10);

len++;//若吃了苹果,增加分数,蛇长度

gotoxy(tail[1]*2,tail[0]);

color(14);

printf("★");

return1;

else

{

gotoxy(tail[1]*2,tail[0]);

color(11);

printf("■");

return0;

//处理蛇的尾巴

voidmove(c

谁有贪吃蛇的c程序代码

#define N 200 #include#include#include#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

求C语言贪吃蛇源码详解

共有两关,有记时器和记分器; 按Enter键开局; 在游戏过程中,按ESC键退出,按Enter键重新开局; #include #include #include #include #include #define Enter 7181 #define ESC 283 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #define RIGHT 19712 #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif void interrupt (*oldhandler)(__CPPARGS); void interrupt newhandler(__CPPARGS); void SetTimer(void interrupt (*IntProc)(__CPPARGS)); void KillTimer(void); void Initgra(void); void TheFirstBlock(void); void DrawMap(void); void Initsnake(void); void Initfood(void); void Snake_Headmv(void); void Flag(int,int,int,int); void GameOver(void); void Snake_Bodymv(void); void Snake_Bodyadd(void); void PrntScore(void); void Timer(void); void Win(void); void TheSecondBlock(void); void Food(void); void Dsnkorfd(int,int,int); void Delay(int); struct Snake {int x;int y;int color;}Snk[12]; struct Food {int x;int y;int color;}Fd; int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0, checkx,checky,num,key=0,Times,Score,Hscore,Snkspeed,TimerCounter,TureorFalse; char Sco[2],Time[6]; void main() { Initgra(); SetTimer(newhandler); TheFirstBlock(); while

(1) {DrawMap(); Snake_Headmv(); GameOver(); Snake_Bodymv(); Snake_Bodyadd(); PrntScore(); Timer(); Win(); if(key==ESC) break; if(key==Enter) {cleardevice(); TheFirstBlock(); } TheSecondBlock(); Food(); Delay(Snkspeed); } closegraph(); KillTimer(); } void interrupt newhandler(__CPPARGS) { TimerCounter++; oldhandler(); } void SetTimer(void interrupt (*IntProc)(__CPPARGS)) { oldhandler=getvect(0x1c); disable(); setvect(0x1c,IntProc); enable(); } void KillTimer() { disable(); setvect(0x1c,oldhandler); enable(); } void Initgra() {int gd=DETECT,gm; initgraph(&gd,&gm,"d:\\tc"); } void TheFirstBlock() {setcolor

(11); settextstyle(0,0,4); outtextxy(100,220,"The First Block"); loop:key=bioskey(0); if(key==Enter) {cleardevice(); Initsnake(); Initfood(); Score=0; Hscore=1; Snkspeed=10; num=2; Times=0; key=0; TureorFalse=1; TimerCounter=0; Time[0]='0';Time[1]='0';Time[2]=':';Time[3]='1';Time[4]='0';Time[5]='\0'; } else if(key==ESC) cleardevice(); else goto loop; } void DrawMap() {line(10,10,470,10); line(470,10,470,470); line(470,470,10,470); line(10,470,10,10); line(480,20,620,20); line(620,20,620,460); line(620,460,480,460); line(480,460,480,20); } void Initsnake() {randomize(); num=2; Snk[0].x=random(440); Snk[0].x=Snk[0].x-Snk[0].x%20+50; Snk[0].y=random(440); Snk[0].y=Snk[0].y-Snk[0].y%20+50; Snk[0].color=4; Snk[1].x=Snk[0].x; Snk[1].y=Snk[0].y+20; Snk[1].color=4; } void Initfood() {randomize(); Fd.x=random(440); Fd.x=Fd.x-Fd.x%20+30; Fd.y=random(440); Fd.y=Fd.y-Fd.y%20+30; Fd.color=random(14)+1; } void Snake_Headmv() {if(bioskey

(1)) {key=bioskey(0); switch(key) {case UP:Flag(1,0,0,0);break; case DOWN:Flag(0,1,0,0);break; case LEFT:Flag(0,0,1,0);break; case RIGHT:Flag(0,0,0,1);break;

以下为关联文档:

贪吃蛇C语言代码原发布者:西瓜萝卜饭lala #include #include #include #include #include #include #include #defineN21 charapple[2]; chartail[2]; char**snake=NULL; intscore=0; intlen...

贪吃蛇用C语言怎么编#define N 200 #include#include#include#define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0;/*...

简单的能用vc贪吃蛇的c语言代码就是最简单的那些音乐颜色都#include #include #include #define MAZE_SIZE (15) #define FPS (3) #define SBC 'O' #define BGC ' ' #define WALL (1) #define BODY (4) #define FOOD (8) void Initia...

求用c语言编写的贪吃蛇程序#include#include#include#include/*引用的库函数*/ #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b/*宏定义键名*/...

关于用C语言编写的小游戏的游戏代码如黑白棋贪吃蛇等我这儿有c语言的自写俄罗斯方块,请指教: #include #include #include #include #include #include #include #define ESC 0x011b #define UP 0x4800 #define DOWN 0x5000 #def...

贪吃蛇c语言代码#define N 200 #include#include#include#define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0;/*...

求助!我要一个用C语言编辑的贪吃蛇游戏的程序代码一定要是C#include#include#include#include#includechin a i t p oe er . co mugTTCrI #include#include#include#include#define N 50 #define Time 10000 int A[N][N]; int IE=6;c...

C语言写贪吃#include#include#include#include/*引用的库函数*/ #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b/*宏定义键名*/...

贪吃蛇C语言代码有一定功能要求以下是代码/* 贪吃蛇程序 by champking */#define N 200#include#include#include#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define E...

推荐阅读
图文推荐