Aller au contenu

graphics.h


legame

Messages recommandés

J'utilise Dev-C++ et j'ai trouvé le code souce pour un petit jeu sur internet. Lorsque je souhaite le compiler il lui manque le fichier graphics.h, d'après ce que j'ai compris sur google télécharger le fichier n'est pas forcément la bonne solution. Est-ce-que quelqu'un pourrait m'aider svp?????

Pour informations voila le code du petit jeu en question:

#include<stdio.h>
#include<alloc.h>
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<process.h>

float xs=10,ys=440;  //coordinates to make the sliding board
float xb=40,yb=25,xbdir=1,ybdir=1,i=1,j=1; //coordinates & direction for 1st ball
float x1=250,y1=25,y1dir=1,x1dir=-1; //coordinates & direction for 2nd ball
int score=0,land=0,level=1;
float x2=50,y2=25,x2dir=1,y2dir=1;  // coordinates & direction for 3nd ball
float x3=500,y3=25,y3dir=1,x3dir=-1; // coordinates & direction for 4th ball

float areas,areab;
char ch,*buffb,*buffs;

void balls(int,int);       // to draw the balls

void board();         //to draw the sliding board

void making();       //function to execute the movement of balls and board

void image(float *xb1,float *yb1,float *xb1dir,float *yb1dir); //to move the ball

void fire();  //to fire the laser

void LEVEL(); //to display the level menu

void score1(); //to display the score

void readme();  //to read the instructions

void display();  //to display the main menu of game

void main()
{
int driver=DETECT,mode;
initgraph(&driver,&mode,"\\tc\\bgi");

LEVEL();

getch();

closegraph();
}

void making()          //start of making()
{
int testb,test1,test2,test3;
int a,b;

board();

balls(xb,yb);

balls(x1,y1);

if(score>=20)
balls(x2,y2);

if(score>=100)
balls(x3,y3);

while(1)
{
  if(kbhit())
  {
  ch=getch();

  if(ch=='M')              //for right movement of board
  {
  putimage(xs-2,ys-5,buffs,XOR_PUT);
  xs=xs+10;
  putimage(xs-2,ys-5,buffs,XOR_PUT);
  }

  else if(ch=='K')         //for left movement of board
  {
  putimage(xs-2,ys-5,buffs,XOR_PUT);
  xs=xs-10;
  putimage(xs-2,ys-5,buffs,XOR_PUT);
  }

  else if(ch=='p'|| ch=='P')   //to pause the game
  getch();

  else if(ch==27)           // to quit the game
  exit(0);

  if(ch=='f'||ch=='F')      //to fire the laser
  {
  fire();

   testb=(xs+30)>=(xb-6) && (xs+30)<=(xb+6);
   test1=(xs+30)>=(x1-6) && (xs+30)<=(x1+6);
   test2=(xs+30)>=(x2-6) && (xs+30)<=(x2+6);
   test3=(xs+30)>=(x3-6) && (xs+30)<=(x3+6);

  if(testb || test1 || test2 || test3)
  {

    if(testb)
       {
       b=yb,a=xb;
       yb=25;
       xb=0.8*xb;
       }

      else if(test1)
       {
       b=y1,a=x1;
       y1=25;
       }

     else if(test2 && score>=20)
       {
       b=y2,a=x2;
       y2=25;
       }
      else if(test3 && score>=100)
       {
       b=y3,a=x3;
       y3=25;
       }

  sound(500);
  delay(30);
  nosound();
  gotoxy(15,1);
  score=score+10;
  setcolor(15);
  circle(a,b,40);
  setfillstyle(10,14);
  floodfill(a,b,15);

  if(score==50)
  level=1;

  if(score==100)
  level=1;

  delay(100);
  cleardevice();
  }
  making();

  }
}

if(level==1)
delay(10);

if(level==2)
delay(5);

if(level==3)
delay(4);

if(yb<=457)               //ball 1
{
i=0.8,j=1.09;
image(&xb,&yb,&xbdir,&ybdir);
}

if(y1<=457)                       // ball 2
{
i=0.4,j=0.9;
image(&x1,&y1,&x1dir,&y1dir);
}

if( y2<=457 && score>=20 )           //ball 3
{
i=0.2,j=0.8;
image(&x2,&y2,&x2dir,&y2dir);
}

if(y3<=457&&score>=100)         //ball 3
{
i=1.5,j=1.5;
image(&x3,&y3,&x3dir,&y3dir);
}

if(y1>=457||yb>=457||y2>=457||y3>=457)
{
land++;                             //land for missing the target

if(y1>=457 && score>=20)
y1=25;

else if(yb>=457)
yb=25;

else if(y2>=457&&score>=20)
y2=25;

else if(y3>=457 && score>=100)
y3=25;

cleardevice();
making();
}
int xbtest= xb<5 || xb>630;
int x1test= x1<5 || x1>630;
int x2test= x2<5 || x2>630;
int x3test= x3<5 || x3>630;

if(xbtest|| x1test || x2test || x3test)
{
if(xbtest)
xbdir*=-1;

else if(x1test)               //changing ball 1 direction
x1dir*=-1;

else if(x2test)               //changing ball 3 direction
x2dir*=-1;

else if(x3test)               //changing ball 4 direction
x3dir*=-1;

sound(1050);
delay(30);
nosound();
}

if(xs<10)
xs=580;

else if(xs>600)
xs=10;

      if(land==7)
score1();
 }
}                             //end of making()

void board()              // start of board()
{
setcolor(15);
setlinestyle(0,0,1);
gotoxy(1,1);
cout<<" YOUR SCORE->";
gotoxy(15,1);
cout<<score;
gotoxy(47,1);
cout<<"Press 'F' to fire the laser";
line(5,18,637,18);
line(5,18,5,470);
line(637,18,637,470);
line(5,470,637,470);

line(xs,ys,xs+60,ys);
line(xs,ys+8,xs+60,ys+8);
arc(xs+2,ys+4,90,270,4);
arc(xs+58,ys+4,270,90,4);
line(xs+25,ys,xs+25,ys-5);
line(xs+35,ys,xs+35,ys-5);
line(xs+25,ys-5,xs+35,ys-5);
setfillstyle(1,RED);
floodfill(xs+27,ys-1,15);
setfillstyle(1,BROWN);
floodfill(xs+2,ys+2,15);

areas=imagesize(xs-2,ys-5,xs+62,ys+8);
buffs=(char*)malloc(areas);
getimage(xs-2,ys-5,xs+62,ys+8,buffs);
}

void balls(int xb1,int yb1)
{
circle(xb1,yb1,3);
setfillstyle(1,BLUE);
floodfill(xb1,yb1,15);

areab=imagesize(xb1-6,yb1,xb1+6,yb1+6);
buffb=(char*)malloc(areab);
getimage(xb1-6,yb1-6,xb1+6,yb1+6,buffb);

}           //end of board()

void image(float *xb1,float *yb1,float *xb1dir,float *yb1dir)  //start of image()
{
putimage(*xb1-6,*yb1-6,buffb,XOR_PUT);
*xb1=*xb1+(*xb1dir*j);
*yb1=*yb1+(*yb1dir*i);
putimage(*xb1-6,*yb1-6,buffb,XOR_PUT);
}                                             //end of image()

void fire()                //start of fire()
{
sound(3000);
  delay(5);
  nosound();
  setcolor(RED);
  setlinestyle(0,0,3);
  line(xs+30,ys-6,xs+30,10);
  delay(100);
  setcolor(0);
  line(xs+30,ys-6,xs+30,10);
}                                    //end of fre()

void display()                      // start of display()
{
int x=270,y=210;
char chd;
setcolor(15);

line(5,15,637,15);
line(5,15,5,470);
line(637,15,637,470);
line(5,470,637,470);

setcolor(14);
settextstyle(0,0,2);
outtextxy(90,50,"WELCOME TO THE ULTIMATE GAME");
settextstyle(1,0,2);
setcolor(9);
outtextxy(120,260,"PRESS 'S' TO START A NEW GAME");
outtextxy(120,290,"PRESS 'R' TO READ INSTRUCTIONS");
outtextxy(120,320,"PRESS 'L' TO CHANGE LEVEL");
outtextxy(120,350,"PRESS 'E' TO EXIT");

setcolor(15);
setlinestyle(0,0,1);

line(x,y,x+60,y);
line(x,y+8,x+60,y+8);
arc(x+2,y+4,90,270,4);
arc(x+58,y+4,270,90,4);
line(x+25,y,x+25,y-5);
line(x+35,y,x+35,y-5);
line(x+25,y-5,x+35,y-5);
setfillstyle(1,RED);
floodfill(x+27,y-1,15);
setfillstyle(1,BROWN);
floodfill(x+2,y+2,15);

while(1)
{
   setcolor(0);
   line(x+30,y-6,x+30,100);

   if(kbhit())
    {
     chd=getch();

     if(chd=='e'||chd=='E'||chd==27)
     exit(0);

     if(chd=='s'||chd=='S')
     {
     cleardevice();
     making();
     break;
     }

     if(chd=='r'||chd=='R')
     {
     cleardevice();
     readme();
     break;
     }

     if(chd=='l'||chd=='L')
     {
     LEVEL();
     break;
     }

   }
  delay(0);
  setcolor(RED);
  line(x+30,y-6,x+30,100);

}
getch();
}                           // end of display()

void LEVEL()               //start of LEVEL()
{
char l;
cleardevice();
setcolor(5);
settextstyle(1,0,2);
outtextxy(200,150,"SELECT THE LEVEL");
setcolor(14);

outtextxy(200,200,"PRESS '1' FOR EASY LEVEL");
outtextxy(200,230,"PRESS '2' FOR MEDIUM LEVEL");
outtextxy(200,260,"PRESS '3' FOR DIFFICULT LEVEL");
l=getch();

if(l==49)
{level=1;
cleardevice();
display();
}

else if(l==50)
{
level=2;
cleardevice();
display();
}
else if(l==51)
{
level=3;
cleardevice();
display();
}

else
LEVEL();
}                             //end of LEVEL()

void readme()                //start of readme()
{
setcolor(5);
outtextxy(10,10,"This game is made by MANIK GUPTA (FROM INDIA) ");
outtextxy(10,35,"currently studing in NITK surathkal");

outtextxy(10,60,"This code is in C++.It is very easy to");
outtextxy(10,85,"understand and play ! !");
outtextxy(10,110,"DO CONTACT ME AT - manik_iits@yahoo.com");

setcolor(6);
outtextxy(10,160,"HOW TO PLAY THE GAME ?");
setcolor(5);
outtextxy(10,190,"For the movement of the board towards left Press '<-'");
outtextxy(10,215,"and towards right movement Press '->'. If you want to exit");
outtextxy(10,240,"the game while playing just Press Esc button . You can ");
outtextxy(10,265,"Pause the game by pressing 'P' button and then resuming  ");
outtextxy(10,290,"the game by pressing any button.  ");
outtextxy(10,315,"Use the 'F' key to fire the laser!!  ");
outtextxy(10,340,"If you let go 'SEVEN' balls without hitting your game is over");
setcolor(14);
outtextxy(150,365,"WISHING YOU GOOD LUCK ! !  ");

getch();
cleardevice();
display();
}                                    // END OF README()

void score1()
{
   cleardevice();
setcolor(14);
outtextxy(100,100,"GAME OVER BUDDY ! !");
delay(1000);
int sz=0,dl=100;
char msg[10];
sprintf(msg, "%d", score);
for(int i=0;i<13;i++)
{
 sz++;
 cleardevice();
 setcolor(i+2);
 settextstyle(0,0,sz);
 outtextxy(200,200,msg);
 delay(dl);
}
    delay(400);
getch();
exit(0);
}

Merci! :-D

Lien vers le commentaire
Partager sur d’autres sites

a mon avis ton graphic.h contient toutes les entetes de tes fonctions circle(), line() etc... donc tu va avoir du mal à compiler quoi que ce soit sans ça.

d'autre part, c'est peut-être pas top de commencer en tléléchargeant un code pour le moins obscure (et mal organisé :chinois: ), l'aurait mieux valu essayer des trucs plus simple sur l'utilisation de bibliothèque graphiques avant :transpi:

Lien vers le commentaire
Partager sur d’autres sites

initgraph(&driver,&mode,"\\tc\\bgi");

De +, comme on peut le voir ici, il te faudra en + du fichier graphics.h, les fichiers BGI correspondants aux formats vidéo que tu as mis en paramètre de la fonction initgraph

et dans le chemin, tu peux voir "tc", donc TurboC

et les fichiers BGI sont des fichiers créés par Borland pour permettre l'affichage de point, lignes, ....

pour télécharger Turbo C++ :

http://community.borland.com/article/0,1410,21751,00.html

ou google....

ou si tu veux faire fonctionner ce code sous DevC++

il te faut recoder les méthodes de graphics.h

et meme si tu trouves le fichier graphics.h

le code des méthodes se trouve dans les fichiers BGI, mais sous leur forme compilé...

bonne chance

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...