C++ Project, Bolly Wood CODING
#include<graphics.h> #include<math.h> #include<conio.h> #include<string.h> #include<fstream.h> #include<stdlib.h> #include<time.h> classhscore { char name[20]; int score; public: hscore(char *n, int x) { strcpy(name,n); score=x; } hscore(){} intretscore() { return score; } char *retname() { return name; } }; void frame(int,int,int); char *input(int,int); void welcome(int,int); void game(int,int,int&,int,int&); voidhighscore(int,int); voidgameover(int,int,hscore); void main() { intgdriver=DETECT,gmode; initgraph(&gdriver,&gmode,"c:\\turboc3\\bgi"); intmaxx=getmaxx(),maxy=getmaxy(),score=0,sc,ctrgame; welcome(maxx,maxy); char name[20]; strcpy(name,input(maxx,maxy)); for(inti=0;i<10;i++) { game(maxx,maxy,sc,i+1,ctrgame); getch(); cleardevice(); if(ctrgame==0) { break; } score+=sc; } hscore data(name,score); gameover(maxx,maxy,data); getch(); closegraph(); } void frame(intmaxx,intmaxy,int color) { setcolor(WHITE); setfillstyle(CLOSE_DOT_FILL,color); rectangle(0,0,maxx,maxy); rectangle(20,20,maxx-20,maxy-20); floodfill(10,10,WHITE); } void welcome(intmaxx,intmaxy) { frame(maxx,maxy,LIGHTGRAY); settextstyle(GOTHIC_FONT,0,7); setcolor(BROWN); settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(maxx/2,150,"welcome"); outtextxy(maxx/2,200,"to"); outtextxy(maxx/2,250,"bollywood"); getch(); cleardevice(); } char *input(intmaxx,intmaxy) { frame(maxx,maxy,RED); settextstyle(GOTHIC_FONT,0,5); setcolor(RED); outtextxy(maxx/2,maxy/2 -50,"enter name"); char name[20],ch; inti=0; name[0]='\0'; while(1) { setcolor(BLUE); outtextxy(maxx/2,maxy/2,name); ch=getch(); setcolor(BLACK); outtextxy(maxx/2,maxy/2,name); if(ch!=13) { if(ch==8&&i!=0) { name[i-1]='\0'; i--; } else if(ch!=8) { name[i++]=ch; name[i]='\0'; } } else { break; } } cleardevice(); return name; } void game(intmaxx,intmaxy,int&score,intlevel,int&ctrwin) { randomize(); ifstream file("movies.dat"); if(!file) { cout<<"\nCANNOT OPEN THE FILE!:"; getch(); exit(0); } charlevelname[20],l[10]; itoa(level,l,10); strcpy(levelname,"LEVEL"); strcat(levelname,l); intctr=random(27),i=0; charmov[20]; while(!file.eof()) { file.getline(mov,20); if(ctr==i)break; i++; } chardisp[20],bolly[]="bollywood",used[26],wrong[10]; used[0]='\0'; wrong[0]='\0'; int size=strlen(mov); for(i=0;i<size;i++) { if(mov[i]<123&&mov[i]>96) { disp[i]='*'; } else { disp[i]=mov[i]; } } disp[i]='\0'; frame(maxx,maxy,BROWN); settextjustify(CENTER_TEXT,CENTER_TEXT); settextstyle(DEFAULT_FONT,0,4); setcolor(BROWN); outtextxy(maxx/2,100,levelname); setcolor(GREEN); settextjustify(CENTER_TEXT,CENTER_TEXT); settextstyle(GOTHIC_FONT,0,7); outtextxy(maxx/2,150,disp); setcolor(BLUE); settextstyle(GOTHIC_FONT,0,6); outtextxy(maxx/2,230, bolly); clock_tend,start; charch; int err=0,ctrerr,ctrused=0,ctrwrong=0; start = clock(); while(err!=9) { do { ch=getch(); for(i=0;i<ctrused;i++) { if(ch==used[i]) { ch=88; break; } } }while(ch>123 || ch<96); ctrerr=1; for(i=0;i<size;i++) { if(ch==mov[i]) { disp[i]=mov[i]; ctrerr=0; } } if(ctrerr!=0) { bolly[err++]='*'; wrong[ctrwrong++]=ch; wrong[ctrwrong]='\0'; } used[ctrused++]=ch; used[ctrused]='\0'; cleardevice(); frame(maxx,maxy,BROWN); settextjustify(CENTER_TEXT,CENTER_TEXT); settextstyle(DEFAULT_FONT,0,4); setcolor(BROWN); outtextxy(maxx/2,100,levelname); setcolor(GREEN); settextjustify(CENTER_TEXT,CENTER_TEXT); settextstyle(GOTHIC_FONT,0,7); outtextxy(maxx/2,150,disp); setcolor(BLUE); settextstyle(GOTHIC_FONT,0,6); outtextxy(maxx/2,230,bolly); settextstyle(GOTHIC_FONT,0,4); settextjustify(LEFT_TEXT,TOP_TEXT); setcolor(DARKGRAY); outtextxy(maxx/2-150,300,"wrong:"); setcolor(LIGHTRED); settextstyle(SANS_SERIF_FONT,0,3); outtextxy(maxx/2-30,300,wrong); setcolor(DARKGRAY); settextstyle(GOTHIC_FONT,0,4); outtextxy(maxx/2-150,370,"used:"); setcolor(YELLOW); settextstyle(SANS_SERIF_FONT,0,3); outtextxy(maxx/2-50,370,used); ctrwin=1; for(i=0;i<size;i++) { if(disp[i]=='*') { ctrwin=0; break; } } if(ctrwin==1) { end=clock(); inttimetaken=ceill((end-start)/CLK_TCK); char t[10]; itoa(timetaken,t,10); setcolor(WHITE); settextstyle(GOTHIC_FONT,0,3); outtextxy(30,50,"time taken"); outtextxy(40,70,t); score=(100-timetaken)*10; char s[10]; itoa(score,s,10); setcolor(BROWN); settextstyle(GOTHIC_FONT,0,3); outtextxy(maxx-100,50,"score"); outtextxy(maxx-100,70,s); break; } end=clock(); inttimetaken=ceill((end-start)/CLK_TCK); if(timetaken>100) { ctrwin=0; break; } } } voidgameover(intmaxx,intmaxy,hscore data) { frame(maxx,maxy,RED); setcolor(WHITE); settextstyle(DEFAULT_FONT,0,5); settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(maxx/2,100,"GAME"); outtextxy(maxx/2,150,"OVER"); setcolor(BROWN); settextstyle(DEFAULT_FONT,0,3); outtextxy(maxx/2-100,250,"SCORE:"); charscoredisp[20]; itoa(data.retscore(),scoredisp,10); setcolor(RED); outtextxy(maxx/2+100,250,scoredisp); ifstream file("score.dat"); if(!file) { file.close(); ofstream file2("score.dat"); file2.write((char *)&data,sizeof(data)); file2.close(); } else { file.close(); fstream file2("score.dat",ios::in|ios::out); hscore temp; settextstyle(GOTHIC_FONT,0,4); file2.read((char*)&temp,sizeof(temp)); if(temp.retscore()<data.retscore()) { setcolor(RED); outtextxy(maxx/2,maxy-100,"all time best!"); file2.seekg(ios::beg); file2.write((char*)&data,sizeof(data)); } else { setcolor(RED); outtextxy(maxx/2,maxy-150,"best:"); outtextxy(maxx/2-100,maxy-100,"name:"); outtextxy(maxx/2-100,maxy-70,"score:"); setcolor(GREEN); outtextxy(maxx/2+100,maxy-100,temp.retname()); chartempscore[10]; itoa(temp.retscore(),tempscore,10); outtextxy(maxx/2+100,maxy-70,tempscore); } file2.close(); } } |