level 5
我是唐潮人
楼主
#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;
}
}
2015年01月03日 04点01分
1
#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;
}
}