鱼C论坛

 找回密码
 立即注册
查看: 1919|回复: 7

请问这是什么错误

[复制链接]
发表于 2014-4-15 11:23:58 | 显示全部楼层 |阅读模式
5鱼币
软件\visul c++\microsoft visual studio\vc98\mfc\include\graphics.h(9) : fatal error C1083: Cannot open type library file: 'Foundation/Foundation.h': No such file or directory
执行 cl.exe 时出错.
这是代码:
               #include<graphics.h>
#include<stdlib.h>
#include<dos.h>
#include<conio.h>
#define UP 0x4800
#define DOWN 0x5000
#define RIGHT 0x4d00
#define LEFT 0x4b00
#define ESC 0x11b
#define ENTER 0x1c0d
#define SPACE 0x3920
struct Food        /*食物结构体*/
{
int x;
int y;
int yes;
}food;
struct Snake       /*蛇结构体*/
{
int x[100];
int y[100];
int n;
int color;
int direction;
}snake;
int speed=0000;
void main()        /*主函数*/
{
void wall();
void start();
void close();
void game();
void score();
void leavl();
void select();
void sw();
int key;
while(1)
{
start();
select();
cleardevice();
wall();
sw();
game();
cleardevice();
setcolor(RED);
outtextxy(250,220,"Please press ESC Quit");
outtextxy(250,240,"Press any-key GO ON");
key=bioskey(0);
if(key==ESC) break;
}
close();
}
void close()
{
getch();
closegraph();
}
void start()                        /*BGI初始化*/
{
int gd=DETECT,gm;
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"");
}
void wall()
{                                               /*画墙*/
int i;
randomize();
for(i=0;i<=1000;i++)
putpixel(random(640),random(480),random(14)+1);
setcolor(random(14)+1);
rectangle(60,140,580,410);
setcolor(random(14)+1);
rectangle(62,142,578,408);
setcolor(random(14)+1);
setlinestyle(0,1,3);
rectangle(68,148,571,401);
setcolor(LIGHTBLUE);
}
void game()                                  /*主游戏*/
{
int i,key,gamespeed;
snake.color=random(14)+1;
food.yes=1;
setcolor(GREEN);
outtextxy(400,50,"Press ESC Qiut");
outtextxy(400,70,"Press ENTER Stop");
setcolor(LIGHTBLUE);
outtextxy(100,100,"score:");
outtextxy(300,100,"leavl:");
snake.x[0]=150;
snake.y[0]=200;
snake.x[1]=140;
snake.y[1]=200;
snake.n=2;
snake.direction=2;
setcolor(WHITE);
setlinestyle(0,1,1);
setfillstyle(1,snake.color);
for(i=0;i<snake.n;i++)
bar(snake.x[i],snake.y[i],snake.x[i]+9,snake.y[i]+9); /*画蛇*/
  while(1)
  {
    key=bioskey(0);                                       /*设置按键*/
    if(bioskey(1)) key=bioskey(0);
    if(key==ENTER) bioskey(0);
    if(key==ESC) break;
    /*if(key==SPACE) select();*/
    if(key==LEFT&&snake.direction!=2) snake.direction=1;
    if(key==RIGHT&&snake.direction!=1) snake.direction=2;
    if(key==UP&&snake.direction!=4) snake.direction=3;
    if(key==DOWN&snake.direction!=3) snake.direction=4;
   while(!kbhit())
   {
    delay(speed);
    gamespeed=60000-(snake.n-2)*1000;         /*蛇每增加一节延时减少1000毫秒*/
    delay(gamespeed);
    leavl();
    if(gamespeed==0)
    {
     setcolor(snake.color);
     settextstyle(0,0,5);
     cleardevice();
     outtextxy(140,250,"You win!!");
     outtextxy(220,200,"GOOD!");
     settextstyle(0,0,1);
     bioskey(0);
     return;
    }
    setfillstyle(1,BLACK);
    if(food.yes==1)                        /*如果蛇头碰到食物,不运行下面语句*/
    bar(snake.x[snake.n-1],snake.y[snake.n-1],snake.x[snake.n-1]+9,snake.y[snake.n-1]+9); /*擦除蛇尾*/
    food.yes=1;
    setfillstyle(1,snake.color);
    for(i=snake.n;i>0;i--)      /*蛇的后一节的坐标等于前一节的坐标*/
    {
     snake.x[i]=snake.x[i-1];
     snake.y[i]=snake.y[i-1];
    }
    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;
    }
    bar(snake.x[0],snake.y[0],snake.x[0]+9,snake.y[0]+9);   /*在蛇头的前面画出新的一节*/
    if(food.x==snake.x[0]&&food.y==snake.y[0])          /*蛇头碰到食物*/
    {
     food.yes=0;
     snake.n++;
     sw();
    }
    if(snake.x[0]>=570||snake.x[0]<=65||snake.y[0]>=400||snake.y[0]<=140)   /*判断蛇是否撞墙*/
    return;
    for(i=snake.n;i>3;i--)
    if(snake.x[0]==snake.x[i]&&snake.y[0]==snake.y[i])   /*判断蛇是否碰到自身*/
    return;
    score();
   }
}
}
void score()                         /*记分*/
{
char a[10];
setcolor(LIGHTBLUE);
setfillstyle(1,BLACK);
bar(140,100,300,110);
sprintf(a,"score:%d",(snake.n-2)*10);
outtextxy(100,100,a);
}                                   /*等级*/
void leavl()
{
char str[10];
setcolor(LIGHTBLUE);
setfillstyle(1,BLACK);
bar(340,100,400,110);
sprintf(str,"leavl:%d",(snake.n-1)/5);
outtextxy(300,100,str);
setcolor(RED);
setfillstyle(1,BLACK);
bar(200,120,300,130);
if((snake.n-1)%5==0)
outtextxy(200,120,"LEAVL UP!"),
snake.color++;
if(snake.color>15)
snake.color=1;
}
void sw()                            /*画食物*/
{
int i;
randomize();
food.x=random(500)+70;
food.y=random(250)+150;
for(i=0;i<=snake.n;i++)
while(snake.x[i]==food.x||snake.y[i]==food.y)   /*判断食物是否出现在蛇身上*/
food.x=random(500)+70,food.y=random(250)+150;
while((food.x%10)!=0)
food.x--;
while((food.y%10)!=0)
food.y--;
setfillstyle(1,YELLOW);
bar(food.x,food.y,food.x+9,food.y+9);
}
void select()
{
int key;
static int x=129,y=148;
setcolor(LIGHTGREEN);
outtextxy(140,300,"Press ENTER Select");
setcolor(GREEN);
rectangle(x,y,x+30,y+30);
settextstyle(0,0,4);
setcolor(RED);
outtextxy(190,50,"Speed");
outtextxy(130,150,"5 4 3 2 1");
settextstyle(0,0,1);
while(1)
{
key=bioskey(0);
if(key==ENTER) break;
if(key==RIGHT&&x<=350)
{
  speed+=10000;
  setcolor(0);
  rectangle(x,y,x+30,y+30);
  setcolor(GREEN);
  x+=64;
  rectangle(x,y,x+30,y+30);
}
if(key==LEFT&&x>=160)
{
  speed-=10000;
  setcolor(0);
  rectangle(x,y,x+30,y+30);
  setcolor(GREEN);
  x-=64;
  rectangle(x,y,x+30,y+30);
}
}
}


最佳答案

查看完整内容

哦!你用的是vc6.0吧!我以前也试过!在vc6.0上,当有#include的时候,程序就会出错,我想可能是因为这个头文件不存在吧!你这样吧!你在Turbo C2.0上面试一下,那个上面是可以编译的,我以前就在它上面编译头文件是#include的程序的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-15 11:23:59 | 显示全部楼层
哦!你用的是vc6.0吧!我以前也试过!在vc6.0上,当有#include<graphics.h>的时候,程序就会出错,我想可能是因为这个头文件不存在吧!你这样吧!你在Turbo C2.0上面试一下,那个上面是可以编译的,我以前就在它上面编译头文件是#include<graphics.h>的程序的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-16 18:21:44 | 显示全部楼层
因为只有在16位的系统才能用#include<graphics.h>,LZ使用的教材是非常古老的教材,建议换一本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-16 22:21:05 | 显示全部楼层
No such file or directory
写得很直白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 13:10:50 | 显示全部楼层
←_← 我敢确定你是不是再用VC++6.0运行贪吃蛇代码
VC++6.0压根就没有 graphics.h 这个头文件的 你下载了也没用
要运行去用turbo C 去
PS:turbo C 现在几乎没人用了 graphics.h 这个也没什么人用了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-19 13:13:20 | 显示全部楼层

OK!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-19 13:13:56 | 显示全部楼层
青玄 发表于 2014-4-16 00:04
哦!你用的是vc6.0吧!我以前也试过!在vc6.0上,当有#include的时候,程序就会出错,我想可能是因为这个头 ...

恩,OK!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 17:23:43 | 显示全部楼层
帮顶,~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 01:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表