今天从网上找了个程序,于是上机用VC++把源程序输入,当编译后却出现错误了.我想难道是他的程序错误不成?
于是,我就换成了Turbo C把源代码输入了进去,令我匪及所思的是在Turbo C下居然运行成功了.
难道是微软的VC++有问题不成?应该不可能吧.可事实就摆在眼前,我也无法不相信呢?
令把贪吃蛇的源代码发出来,请大家看看是什么原因造成的?
#include "stdio.h"
#include "graphics.h"这就是错误的那行代码了。。
#include "dos.h"
#include "bios.h"
void main()
{
int snake(int *a,int *b,int c);
int law(int a,int b,int *d,int *c,int k);
int eat(int *a,int *c,int d,int e,int k);
char con;
int gd=VGA,x1,y1,k=5,i=-6,j=0,m,x2,y2,n=0,speed;
int gm=VGAHI,a[101],c[101],b[101][101];
initgraph(&gd,&gm,"");
cleardevice();
printf("please putin the speed:1--8\n");
scanf("%d",&speed);
setcolor(7);
line(79,29,79,451);line(79,29,561,29);
line(79,451,561,451);line(561,29,561,451);
setviewport(80,30,560,450,1);
setcolor(2);
for(x1=1;x1<=80;x1++)
for(y1=1;y1<=70;y1++)
b[x1][y1]=0;
for(x1=1;x1<=k;x1++)
{a[x1]=237+6*x1;
c[x1]=213;}
snake(a,c,k);
getch();
for(;;)
{if(n==0)
{x1=rand()%80+1;y1=rand()%70+1;n=1;
circle(x1*6-3,y1*6-3,3);
b[x1][y1]=2;}
setcolor(0);
snake(a,c,k);
if(bioskey(1)==0)
goto am;
con=bioskey(0);
if(con=='u'&&j!=6)
{i=0;j=-6;}
if(con=='n'&&j!=-6)
{i=0;j=6;}
if(con=='j'&&i!=-6)
{j=0;i=6;}
if(con=='h'&&i!=6)
{j=0;i=-6;}
if(con=='p')
getch();
am:x1=a[1];y1=c[1];
a[1]+=i;c[1]+=j;
if(b[(a[1]+3)/6][(c[1]+3)/6]==2)
{k++;eat(a,c,x1+i,y1+j,k);b[(a[1]+3)/6][(c[1]+3)/6]=0;n=0;}
for(m=2;m<=k;m++)
{x2=a[m];y2=c[m];
a[m]=x1;c[m]=y1;
x1=x2;y1=y2;}
setcolor(2);
snake(a,c,k);
for(x1=1;x1<=9-speed;x1++)
delay(10000);
law(a[1],c[1],a,c,k);
}
}
/**/
int snake(int *a,int *c,int k)
{
int x;
for(x=1;x<=k;x++)
{circle(a[x],c[x],3);
circle(a[x],c[x],2);}
},
/**/
int law(int a,int b,int *d,int *c,int k)
{int n;
if(a>477||a<3||b>417||b<3)
{printf("shit\n");
printf("%d",k);exit();
}
for(n=4;n<=k;n++)
if(d[1]==d[n]&&c[1]==c[n])
{printf("shit");
printf("%d",k);exit();}}
/**/
int eat(int *a,int *c,int d,int e,int k)
{
int n,x1,y1,x2,y2;
x1=a[1];y1=c[1];
a[1]=d;c[1]=e;
for(n=2;n<=k;n++)
{x2=a[n];y2=c[n];
a[n]=x1;c[n]=y1;
x1=x2;y1=y2;}}
VC++的结果是"Cannot open include
file:'graphics.h':NO such file or directory"
也就是提示的错误。错误在第2行。
Turbo C 却可能正常运行。