legame Posté(e) le 1 février 2005 Partager Posté(e) le 1 février 2005 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! Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 2 février 2005 Partager Posté(e) le 2 février 2005 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é ), l'aurait mieux valu essayer des trucs plus simple sur l'utilisation de bibliothèque graphiques avant Lien vers le commentaire Partager sur d’autres sites More sharing options...
mogwai93 Posté(e) le 2 février 2005 Partager Posté(e) le 2 février 2005 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 More sharing options...
legame Posté(e) le 2 février 2005 Auteur Partager Posté(e) le 2 février 2005 OK merci! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Galdor Posté(e) le 2 février 2005 Partager Posté(e) le 2 février 2005 Code déguelasse, rien de standart, je ne te conseille vraiment aps d'utiliser ce genre de code comme support... Lis la doc d'une bonne API, et suit les exemples 'officiels'. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.