.
 Vyom World.com  . Let's Touch the Sky Together!  
.
. . . . . . .
 Home
VyomWorld.com Home
Free Magazines!
VyomLinks.com Home
JobsAssist.com Home
Vyom Network
Contact Us
 Jobs & Careers
Resume Submitter
Placement Papers
IT Companies Directory
Computer Jobs
Interview Questions
Online Exams
Vyom Career eMag.
 Fun
Screensavers New!
Send FREE SMS!
SMS Jokes
 Source Codes Library
Source Codes Home
ASP Source Codes
C Source Codes
C++ Source Codes
COBOL Source Codes
Java Source Codes
Pascal Source Codes
Submit Source Codes
 GATE
GATE an Overview
GATE Preparation
Study Materal
 GRE
GRE an Overview
GRE Questions
GRE Preparation
GRE Universities
 TOEFL Preparation
TOEFL Resources
 GMAT Preparation
GMAT Resources
 MBA Preparation
MBA Resources
 Networking Concepts
Networking Concepts
 Testing Preparation
Testing Resources
 Webmasters
Free Traffic Builder
Webmaster Articles
Web Hosting
 Tutorials
Hardware Tutorial
1500 Free eBooks New!
 FREE Publications
Vyom Career eMag.
 
.
Get 9,000+ Interview Questions & Answers in an eBook.


  • 9,000+ Interview Questions
  • All Questions Answered
  • 5 FREE Bonuses
  • Free Upgrades

    Get it now!


    Post your Resume to 5800+ Companies

    Reliable Web Hosting

  •  
     
     
    Get 9,000+ Interview Questions with Answers in an eBook

    Advertisements
    Advertisements

    C_Projects Source Codes List | Source Code Home
    Program : Chess Game Developed in C .
    /* Language: C\C++ Category: Games Description: It is chess. Two players can play it. \ To simplify the code i have not intriduced the mouse.\ We can play it using Keyboard.I have made this using \ general rules. */ #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <iostream.h> #include <conio.h> #include <ctype.h> //For toupper #include <dos.h> //For Delay int board[8][8],turn=0,count1=0,count2=0; int gameover(); char strFileName[15]; void printboard(); void wrongStart(); void initialize(); void cleartext(); void check(); //Prototypes int pawn(int x,int y,int x1,int y1); int horse(int x,int y,int x1,int y1); int rook(int x,int y,int x1,int y1); int bishop(int x,int y,int x1,int y1); int queen(int x,int y,int x1,int y1); int king(int x,int y,int x1,int y1); void main() { //Graphics Initialization int gdriver = DETECT; int gmode; initgraph(&gdriver,&gmode,"e:\\borlandc\\bgi"); //Loading Intro for(float i=0; i<=6;i=i+0.1) { setcolor(12); settextstyle(4,HORIZ_DIR,i); outtextxy(50,120,"WELCOME TO THE CHESS"); delay(30); cleardevice(); } outtextxy(50,120,"WELCOME TO THE CHESS"); settextstyle(1,HORIZ_DIR,3); getch(); cleardevice(); //Displaying Group Members setcolor(CYAN); outtextxy(50,220,"Designed by:"); setcolor(6); outtextxy(50,250,"Atif Zia Khan"); //Displaying Roll Numbers outtextxy(350,250,"L1F01BSCS0144"); getch(); cleardevice(); cleardevice(); settextstyle(1,HORIZ_DIR,2); setcolor(12); outtextxy(50,10,"During the game Press:\n"); outtextxy(50,10,"______________________\n"); setcolor(6); settextstyle(1,HORIZ_DIR,1.5); outtextxy(50,60,"F2 to save file\n"); outtextxy(50,80,"F3 to load file\n"); outtextxy(50,100,"ESC to exit game\n"); outtextxy(50,120,"U to undo selection\n"); outtextxy(50,200,"\nPress any key to play "); getch(); cleardevice(); cleartext(); initialize(); char ch; int x=-1,y=-1,x1=-1,y1=-1; setcolor(9); outtextxy(10,400,"Player 1"); for(;;) { int game; game=gameover(); if(game==0) { break; } FILE *fp; ch=getch(); if(ch==0){ ch=getch(); if(ch=='<'){ //////SAVE///// for(;;) { cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\ \b\b\bEnter File name to save \n"; cin>>strFileName; //Enter File Name fp=fopen(strFileName,"r+"); if(fp!=NULL) { cout<<"File already exist\n"; } else { fp=fopen(strFileName,"w+"); if(fp==NULL) { cout<<"Invalid File Name\n"; } else break; } }//end for fprintf(fp,"%d\n",turn); for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { fprintf(fp,"%d\n",board[i][j]); } } fclose(fp); cleartext(); x=-1; y=-1; x1=-1; y1=-1; continue; } if(ch=='=') { ////Load///// for(;;) { cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\ \b\b\b\b\bEnter File name to Load \n"; cin>>strFileName; fp=fopen(strFileName,"r+"); if(fp==NULL) { cout<<"File does not exist\n"; } else { break; } }//end for fscanf(fp,"%d",&turn); for(int i=0;i<8;i++){ for(int j=0;j<8;j++){ fscanf(fp,"%d",&board[i][j]); } } fclose(fp); printboard(); cleartext(); x=-1; y=-1; x1=-1; y1=-1; setcolor(0); outtextxy(10,400,"Player "); if(turn!=0){ check(); setcolor(2); outtextxy(10,400,"Player 2"); } else{ check(); setcolor(9); outtextxy(10,400,"Player 1"); } continue; } } if(ch==27){ break; } else if(ch=='u'||ch=='U'){ x=-1; x1=-1; y1=-1; y=-1; cleartext(); continue; } if(x==-1){ ch=toupper(ch); if(ch>=65 && ch<=72){ cout<<ch; x=ch-65; } } else if(y==-1) { if(ch>='1' && ch<='8') { cout<<ch; y=ch-'1'; if(board[y][x]==0){ wrongStart(); x=-1; y=-1; } else { if(turn==0) { if(board[y][x]<0) //if Player 1 has selected a piece of Player 2 { wrongStart(); x=-1; y=-1; } } else if(turn!=0) { if(board[y][x]>0) { wrongStart(); x=-1; y=-1; } } } } if(x!=-1 && y!=-1) cout<<"\nenter final position "; } else if(x1==-1) { //Converting lower to upper case ch=toupper(ch); if(ch>=65 && ch<=72) { cout<<ch; x1=ch-65; } } else if(y1==-1) { if(ch>='1' && ch<='8') { cout<<ch; y1=ch-'1'; } int b=0,killed=0; /////pawn///// if(abs(board[y][x])>=9 && abs(board[y][x])<=16){ //if piece selscted has value greater than 8 and less than 17 b = pawn(x,y,x1,y1); }//end pawn //////horse////// else if(abs(board[y][x])==2 || abs(board[y][x])==7){ //if piece selscted has value 2 and 7 b = horse(x,y,x1,y1); }//end horse ////queen/// else if(abs(board[y][x])==4){ ////if piece selscted has value 4 b = queen(x,y,x1,y1); }//end queen ///king/// else if(abs(board[y][x])==5){ //if piece selscted has value 5 b = king(x,y,x1,y1); }//end king ///rook/// else if(abs(board[y][x])==1 || abs(board[y][x])==8){ //if piece selscted has value 1 and 8 b = rook(x,y,x1,y1); }//end rook ///bishop/// else if(abs(board[y][x])==3 || abs(board[y][x])==6){ //if piece selscted has value 3 and 6 b = bishop(x,y,x1,y1); }//end bishop if(b==2){ if(abs(board[y][x])>=9 && abs(board[y][x])<=16){ char pp; cout<<"\n\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\ \bwhich piece Q,R,H,B"; pp=getch(); if(turn==0){ if(pp=='r') board[y1][x1]=1; else if(pp=='h') board[y1][x1]=2; else if(pp=='b') board[y1][x1]=3; else if(pp=='q') board[y1][x1]=4; } else{ if(pp=='r') board[y1][x1]=-1; else if(pp=='h') board[y1][x1]=-2; else if(pp=='r') board[y1][x1]=-3; else if(pp=='q') board[y1][x1]=-4; } board[y][x]=0; killed =1; } else if(abs(board[y][x])==5){ if(board[y][x]==5){ if(count1==1); wrongStart();} else if(board[y][x]==-5){ if(count1==1); wrongStart();} else{ board[y][x+1]=board[y1][x1]; board[y][x+2]=board[y][x]; board[y1][x1]=0; board[y][x]=0; killed=1; } } printboard(); } else if(b==1) { if(turn==0) { if(board[y1][x1]<0) { board[y1][x1]=board[y][x]; board[y][x] = 0; killed=1; } } if(turn!=0) { if(board[y1][x1]>0) { board[y1][x1]=board[y][x]; board[y][x] = 0; killed=1; } } if(board[y1][x1]==0) { int temp=board[y][x]; board[y][x]=board[y1][x1]; board[y1][x1]=temp; killed=1; } printboard(); } x=-1; y=-1; x1=-1; y1=-1; setcolor(0); outtextxy(30,340,"Check"); if(killed==0){ wrongStart(); continue; } cleartext(); setcolor(0); outtextxy(10,400,"Player "); if(turn==0){ check(); turn=1; setcolor(2); outtextxy(10,400,"Player 2"); } else{ check(); turn=0; setcolor(9); outtextxy(10,400,"Player 1"); } }//end legal move }//end for }//end main void printboard(){ for(int i=0;i<8;i++){ for(int j=0;j<8;j++){ if((i+j)%2==0) setcolor(WHITE); else setcolor(BLACK); outtextxy(270+(j*45),105+(i*45),""); if(board[i][j]<0) setcolor(GREEN); else if(board[i][j]>0) setcolor(9); if(abs(board[i][j])>=9 && abs(board[i][j])<=16){ outtextxy(270+(j*45),105+(i*45),"P");} else if(abs(board[i][j])==1 || abs(board[i][j])==8){ outtextxy(270+(j*45),105+(i*45),"R");} else if(abs(board[i][j])==2 || abs(board[i][j])==7){ outtextxy(270+(j*45),105+(i*45),"H"); } else if(abs(board[i][j])==3 || abs(board[i][j])==6){ outtextxy(270+(j*45),105+(i*45),"B"); } else if(abs(board[i][j])==4){ outtextxy(270+(j*45),105+(i*45),"Q"); } else if(abs(board[i][j])==5){ outtextxy(270+(j*45),105+(i*45),"K"); } } } } void wrongStart() { cout<<"\nWrong Input\nPress any key to continue..."; char ch=getch(); if(ch==0){ getch(); } for(int i=1;i<=30;i++) for(int j=1;j<=4;j++) { gotoxy(i,j); cout<<" "; } gotoxy(1,1); cout<<"enter initial position "; } /////ClearText////void cleartext(){ for(int i=1;i<=27;i++) for(int j=1;j<=8;j++){ gotoxy(i,j); cout<<" "; } gotoxy(1,1); cout<<"enter initial position "; } /////Initialize//// void initialize(){ setcolor(WHITE); rectangle(250,90,610,450); // Board Printing for (int i=250;i<560;i+=90) for (int j=90;j<450;j+=90) { bar(i,j,i+45,j+45); bar(i+45,j+45,i+90,j+90); } //Asigning the Values in the empty spaces for(i=2;i<=5;i++) for(int j=0;j<=7;j++) board[i][j] = 0; for(int j=0;j<=7;j++) { board[0][j] = j+1; board[1][j] = j+9; //Pawns for player 1 board[7][j] = 0-(j+1); board[6][j] = 0-(j+9); //Pawns for player 2 } printboard(); setcolor(YELLOW); outtextxy(265,55,"A"); outtextxy(310,55,"B"); outtextxy(355,55,"C"); outtextxy(400,55,"D"); outtextxy(445,55,"E"); outtextxy(490,55,"F"); outtextxy(535,55,"G"); outtextxy(580,55,"H"); outtextxy(220,105,"1"); outtextxy(220,150,"2"); outtextxy(220,195,"3"); outtextxy(220,240,"4"); outtextxy(220,285,"5"); outtextxy(220,330,"6"); outtextxy(220,375,"7"); outtextxy(220,420,"8"); } ////HORSE////// int horse(int x,int y,int x1,int y1) { int a=0; if((y1==y+2 && x1==x+1)||(y1==y+2 && x1==x-1)||(y1==y+1 && x1==x+2)||(y1==y+1 && x1==x-2)||(y1==y-1 && x1==x+2)||(y1==y-1 && x1==x-2)||(y1==y-2 && x1==x+1)||(y1==y-2 && x1==x-1)){ a = 1; } return a; } /////KING//// int king(int x,int y,int x1,int y1) { int a = 0; if((y1==y+1 && x1==x)||(y1==y-1 && x1==x)||(y1==y+1 && x1==x+1)||(y1==y+1 && x1==x-1)||(y1==y-1 && x1==x+1)||(y1==y-1 && x1==x-1)||(y1==y && x1==x+1)||(y1==y && x1==x-1)){ a = 1; } /////CASTLING////// else if(board[y][x+1]==0&&board[y][x+2]==0&&(abs(board[y1][x1]) ==abs(board[y][x+3])==1||abs(board[y1][x1])== abs(board[y][x+3])==8)){ return 2; } if(a==1) { if(board[y][x]==5) count1=1; if(board[y][x]==-5) count2=1; } return a; } //////BISHOP///// int bishop(int x,int y,int x1,int y1) { int a=1,i; if(abs(x1-x)!=abs(y1-y)) { a=0; } if((x<x1)&&(y<y1)) { for(i=1;(i+x)<x1;i++) { if(board[y+i][x+i]!=0) a=0; } } else if((x>x1)&&(y>y1)){ for(i=1;(x-i)>x1;i++){ if(board[y-i][x-i]!=0) a=0; } } else if((x>x1)&&(y<y1)){ for(i=1;(x-i)>x1;i++){ if(board[y+i][x-i]!=0) a=0; } } else if((x<x1)&&(y>y1)){ for(i=1;(y-i)>y1;i++){ if(board[y-i][x+i]!=0) a=0; } } return a; } ////////QUEEN/////// int queen(int x,int y,int x1,int y1){ if(x==x1||y==y1){ //if queen moves in + direction return rook(x,y,x1,y1); } else if(abs(x1-x)==abs(y-y1)){ //if queen moves in diagnol direction return bishop(x,y,x1,y1); } else return 0; } ///ROOK//// int rook(int x,int y,int x1,int y1){ int a=1; if(y1==y) { for(int i=x+1;i<x1;i++) { if(board[y1][i]!=0) { a = 0; break; } } for(i=x-1;i>x1;i--) { if(board[y1][i]!=0) { a = 0; break; } } } else if(x1==x) { for(int i=y+1;i<y1;i++) { if(board[i][x1]!=0) { a = 0; break; } } for(i=y-1;i>y1;i--) { if(board[i][x1]!=0) { a = 0; break; } } } else { a=0; } return a; } ///PAWN///// int pawn(int x,int y,int x1,int y1){ int a=0; if(turn==0){ if(y==1){ if(y1==(y+2) && x1==x){ if(board[y1][x1]==0&&board[y+1][x]==0){ a = 1; } } } if(y1==y+1 && x1==x){ if(board[y1][x1]==0){ a = 1; } } else if(y1==(y+1) && (x1==(x+1)||x1==(x-1))){ if(board[y1][x1]<0){ a = 1; } } } else if(turn==1){ if(y==6){ if( y1==(y-2) && x1==x){ if(board[y1][x1]==0&&board[y-1][x]==0){ a = 1; } } } if( y1==(y-1) && x1==x){ if(board[y1][x1]==0){ a = 1; } } else if(y1==(y-1) && (x1==(x-1)||x1==(x+1))){ if(board[y1][x1]>0){ a = 1; } } } if(a==1) { if(turn==0) { if(y1==7) return 2; } else { if(y1==0) return 2; } } return a; } ////////Check//////// void check() { int t=0,i,j,x1,y1; if(turn==0){ for(i=0;i<=7;i++) { for(j=0;j<=7;j++) { if(board[i][j]==-5) { y1=i; x1=j; break; } } } for(j=0;j<=7;j++){ for(i=0;i<=7;i++){ if (t==1){ setcolor(9); rectangle(20,335,100,365); outtextxy(30,340,"Check"); break; } if(board[j][i]>=9 && board[j][i]<=16) t = pawn(i,j,x1,y1); else if(board[j][i]==2 || board[j][i]==7) t = horse(i,j,x1,y1); else if(board[j][i]==4) t = queen(i,j,x1,y1); else if(board[j][i]==1 || board[j][i]==8) t = rook(i,j,x1,y1); else if(board[j][i]==3 || board[j][i]==6) t = bishop(i,j,x1,y1); }// for }// for }//endif turn else { for(i=0;i<=7;i++){ for(j=0;j<=7;j++){ if(board[i][j]==5){ y1=i; x1=j; break; } } } for(j=0;j<=7;j++){ for(i=0;i<=7;i++){ if (t==1){ setcolor(GREEN); rectangle(20,335,100,365); outtextxy(30,340,"Check"); break; } if(board[j][i]>=(-9) && board[j][i]<=(-16)) t = pawn(i,j,x1,y1); else if(board[j][i]==(-2) || board[j][i]==(-7)) t = horse(i,j,x1,y1); else if(board[j][i]==(-4)) t = queen(i,j,x1,y1); else if(board[j][i]==(-1) || board[j][i]==(-8)) t = rook(i,j,x1,y1); else if(board[j][i]==(-3) || board[j][i]==(-6)) t = bishop(i,j,x1,y1); }// for }// for }// end else } //////GAME OVER///// int gameover(){ int i,j,a=0,b=0; for(i=0;i<=7;i++) { for(j=0;j<=7;j++) { if(board[i][j]==5) b=1; if(board[i][j]==-5) a=1; } } if(b==0) { setcolor(12); outtextxy(30,340,"Game Over"); setcolor(GREEN); outtextxy(30,300,"Player 1 Loses"); getch(); return 0; } else if(a==0) { setcolor(9); outtextxy(30,340,"Game Over"); outtextxy(30,300,"Player 2 Loses"); getch(); return 0; } return 1; }

     

    C_Projects Source Codes List | Source Code Home

     




     

    .

    Recently Updated: New Placement Papers added.
    Vyom Network : Web Hosting | Dedicated Server | Free SMS, GRE, GMAT, MBA | Online Exams | Freshers Jobs | Software Downloads | Programming & Source Codes | GRE Preparation | Jobs, Discussions | Software Listing | Free eBooks | Free eBooks | Free Business Info | Interview Questions | Free Tutorials | International Business Information | IAS Preparation | Jokes, Songs, Fun | Free Classifieds | Free Recipes | FAQs | Free Downloads | Bangalore Info | Tech Solutions | Project Outsourcing, Web Hosting | GATE Preparation | MBA Preparation | SAP Info | Excellent Mobiles | Software Testing | Interview Questions | Freshers Jobs | Server Insiders | File Extension Directory

    Copyright ©2003-2017 Vyom Technosoft Pvt. Ltd., All Rights Reserved. Read our Privacy Policy