[C++] 纯文本查看 复制代码 #include<bits/stdc++.h>
#include <graphics.h> //包含EGE的头文件
#include<time.h>
using namespace std;
int width=800;
int hight=600;
int number;
int count1=1,count2;
char ch;
int score,score_flag;
int f_x,f_y;
float inx(int min,int max)
{
float t=rand()%(max-min)+min;
return t;
}
void foodset()
{
f_x=inx(1,39);
f_y=inx(1,20);
}
struct snake_body
{
int x;
int y;
};
struct snake
{
int len;
int v;
snake_body s_b[100];
char dir;
}s[1];
void start()
{
s[0].len = 4;
s[0].v = 20;
s[0].dir = 'd';
for(int i=0;i<4;i++)
{
s[0].s_b[i].x=20-i;
s[0].s_b[i].y=15;
}
initgraph(width, hight);//初始化图形界面
setcolor(RED);//设置画图线为红色
setbkcolor(WHITE);//设置背景颜色为白色
setfillcolor(RED);//设置填充颜色为红色
}
void move_snake()
{
for(int i=s[0].len;i>0;i--)
{
s[0].s_b[i].x=s[0].s_b[i-1].x;
s[0].s_b[i].y=s[0].s_b[i-1].y;
}
switch(s[0].dir)
{
case 'w': s[0].s_b[0].y-=1;
break;
case 'a': s[0].s_b[0].x-=1;
break;
case 's': s[0].s_b[0].y+=1;
break;
case 'd': s[0].s_b[0].x+=1;
break;
}
}
void update()
{
if(kbhit())
{
s[0].dir = getch();
move_snake();
}//按键响应
}
void draw()
{
for(int i=0;i<s[0].len;i++)
{
setfillcolor(hsv2rgb(10*i%360, 1, 1));//设置填充颜色 参数(颜色,饱和度,明亮度)
bar(20*s[0].s_b[i].x,20*s[0].s_b[i].y,20*s[0].s_b[i].x+20,20*s[0].s_b[i].y+20);
}
Sleep(10);
cleardevice();//绘制球体
}
/*bool gameover()
{
if((ball[0].x>w.xl)&&(ball[0].x<w.xr))//w.xl<w.xr+ball[0].r&&w.yr+ball[0].r<w.yr
{
if((ball[0].y-ball[0].r<w.yr)||(ball[0].y+ball[0].r>w.yr+wall_pass))
{
return 1;
}
}
return 0;
}*/
int main()
{
start();
while(1)
{
draw();
update();
//if(gameover()) break;
}
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
|