Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница:

 

  Вопрос: ЗМЕЙКА НА СИ Добавлено: 08.01.07 16:20  

Автор вопроса:  Цивильный
Ребят, посмотрите пожалуйста. Вроде все правильно,но почему-то первоначальное положение змейки не отображается.


#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
//------------------------------------------------

void main(void)
{
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "");
int i, xpos, ypos, x1, y1, k=0, l, mx, my,m, t,len=4, tmp, x=0, y=0;
char s[2], c[31]={"0123456789"};

int Ax[63]={10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630};
int Ay[40]={10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400};
int Ax2[2500], Ay2[2500];

rectangle(13,13,627,397);
s[0]=c[k];
s[1]='\0';
setcolor(7);
outtextxy(290,450,"Score: ");
outtextxy(347,450,s);
l=rand()%62;
m=rand()%39;
if (l==0) l++;
if (l==62) l--;
if (m==0) m++;
if (m==39) m--;
x1=Ax[l];
y1=Ay[m];

ypos=200;
for (xpos=320;xpos<350;xpos+=10)
{
circle(xpos,ypos,5);
Ax2[x++]=xpos;
Ay2[y++]=ypos;
}
int key;
do
{
setcolor(7);
circle(x1,y1,5);
setfillstyle(1,7);
floodfill(x1,y1,7);
mx=my=0;
if(kbhit()) key=getch();
if(key==80) my=10;
if(key==72) my=-10;
if(key==77) mx=10;
if(key==75) mx=-10;


xpos+=mx;
ypos+=my;
delay(150);
setcolor(7);
circle(xpos,ypos,5);
setcolor(0);
circle(Ax2[0],Ay2[0],5);


if (xpos==x1 && ypos==y1)
{

circle(x1,y1,5);
setfillstyle(1,0);
floodfill(x1,y1,0);

l=rand()%62;
m=rand()%39;
if (l==0 ) l++;
if (l==62) l--;
if (m==0 ) m++;
if (m==39) m--;
x1=Ax[l];
y1=Ay[m];
setcolor(7);
circle(x1,y1,5);
setfillstyle(1,7);
floodfill(x1,y1,7);

setcolor(0);
s[0]=c[k++];
s[1]='\0';
outtextxy(347,450,s);

setcolor(7);
s[0]=c[k];
s[1]='\0';
outtextxy(347,450,s);
len+=1;
}

for (i=0;i<len;i++)
{
Ax2[i]=Ax2[i+1];
Ay2[i]=Ay2[i+1];
}
Ax2[len]=xpos;
Ay2[len]=ypos;


if (getpixel(xpos+3,ypos)==15 | getpixel(xpos-3,ypos)==15 | getpixel(xpos,ypos+3)==15 |  getpixel(xpos,ypos-3)==15)
{
outtextxy(240,200,"Snake left for border");
getch();
closegraph();
}

}
while(key!=27);
getch();
closegraph();
}

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам