我是唐潮人 我是唐潮人
哈哈哈~
关注数: 25 粉丝数: 48 发帖数: 1,031 关注贴吧数: 10
求大神协助,这个程序怎么回事? #include <graphics.h> #include <stdio.h> #define RED 0xA80000 #define LIGHTGRAY 0xA8A8A8 #define BLUE 0x0000A8 #define BLACK 0 #define N 200 #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b struct SNAKE { int x[N]; int y[N]; int direction; int life; int node; }snake; struct FOOD { int x; int y; int life; }food; int i,key; void gameplay() { while(1) //游戏进行时 { while(!kbhit()) { snake.x[0]=300; //初始化 snake.y[0]=300; snake.x[1]=310; snake.y[1]=300; snake.x[2]=320; snake.y[2]=300; snake.direction=1; snake.life=1; snake.noded=3; 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; } //画出蛇 setfillcolor(LIGHTGRAY); for(i=0;i<snake.node;i++) rectangle(snake.x[i],snake.y[i],snake.x[i]+10, snake.y[i]-10); delay(100); setcolor(BLACK);/*用黑色去除蛇的的最后一节*/ rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } if(snake.life==1)/*如果蛇死就跳出循环*/ break; key=kbhit();/*接收按键*/ 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; } int main() { initgraph(640, 480); setcaption("我的第一个C语言实战项目"); //先画一个矩形 setfillcolor(EGERGB(0x0, 0x80, 0x80)); bar(100, 100, 500, 150); //文字颜色 setcolor(EGERGB(0x0, 0xFF, 0x0)); setfont(30, 15, "宋体"); outtextxy(220, 110, "《贪吃蛇》"); outtextrect(220, 220, 300, 100, "语言:C语言 \n工具:VC++6.0"); //设置文字背景填充方式为透明 setbkmode(TRANSPARENT); outtextxy(180, 300, "作者:软件144·吴明"); outtextxy(200, 400, "按任意键进入游戏"); getch(); closegraph(); initgraph(640, 480); setcaption("游戏进行中"); //绘制游戏区域 rectangle(10, 10, 500,470); setfont(15, 10, "宋体"); outtextxy(505, 100, "游戏已经开始!"); setcolor(RED); outtextxy(505, 300, "得分:0分"); setcolor(LIGHTGRAY); outtextxy(505, 450, "Made_by:吴明"); gameplay();//玩游戏时 getch(); return 0; } }
1 下一页