#include #include #include #include #include #include #include #include #include #include #include using namespace std; int i, j, q, g,tlen,knopka; int N=40, M=30, t=50; int Scale=25; int ap=1, bo=1,ap2=0,bo2=0; int w = Scale*N+2; int h = Scale*M+60; int sc,ts=4,trata=0; //score, наибольшая длина, флаг для завершения игры после выхода за краай int dir,num=4; float spds=100, spd=100, samp=0.5; // начальный множитель скорости, изменяющийся int sc2; struct { int x; int y;} s[1000]; class Fructs { public: int x,y; void New() { x=rand() % N; y=rand() % M; } void DrawApple() { glColor3f(0.0,1.0,0.0); glRectf((x+0.15)*Scale,(y+0.15)*Scale,(x+0.85)*Scale,(y+0.85)*Scale); } } m[1000]; class Bombs { public: int x, y; void New1() { x=rand() %N; y=rand() %M; } void DrawBomb() { glColor3f(1.0, 0.0, 0.0); glRectf((x+0.15)*Scale,(y+0.15)*Scale,(x+0.85)*Scale,(y+0.85)*Scale); } } a[1000]; void DrawSnake() { glColor3f(1.0,1.0,1.0); for (int i=0;i0;--i) {s[i].x=s[i-1].x; s[i].y=s[i-1].y;} if (dir==0) s[0].y+=1; if (dir==1) s[0].x-=1; if (dir==2) s[0].x+=1; if (dir==3) s[0].y-=1; for (int i=0;its){ts=num;}} for (int q=0;qap2) {ap2=ap;m[ap-1].New();} if (bo>bo2) {bo2=bo;a[bo-1].New1();} if (s[0].x>N || s[0].x<0 || s[0].y>M || s[0].y<0) {if(num<3) {trata=1;}} if (s[0].x>N) dir=1; if (s[0].x<0) dir=2; if (s[0].y>M) dir=3; if (s[0].y<0) dir=0; for (int i=1;i