تبلیغات
پروژه های رایگان برنامه نویسی و آموزش زبان C++ و C# - تمام حرکات شطرنج
 
برنامه بدون خطا رویاست Program is impossible without an error
پروژه های رایگان برنامه نویسی و آموزش زبان C++ و C#
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
پنجشنبه 26 دی 1387 :: نویسنده : سجاد سلطانی

این سورس طوری نوشته شده است که تمام حرکات شطرنج و انجام می ده .

 

امید وارم خوشتون بیاد برای دیدن کد بر روی ادامه متن کلیک کنید .

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int King(int,int,int,int);   // SHA'H
int Queen(int,int,int,int);  // VAZIR
int Fil(int,int,int,int);
int Sarbaz(int,int,int,int,int);
int Steed(int,int,int,int);  // ASB
int Face(int,int,int,int);   // ROKH

void New(void);
void Move(int,int,int,int);
void Error(int ,int ,int ,int );
void Refresh(void);

int player1(int,int,int,int);
int player2(int,int,int,int);

char shat[8][8][10];
int error;


//*************************************************************************
//*************************************************************************
main(){
 int i,j,y,n,m;
 char x;
 New();
 do{
  do{

   clrscr();
   Refresh();
   printf("\n\n Player 1 select (A 1) : ");
   scanf("%c %d",&x,&y);

   j=toupper(x)-65;
   i=y-1;


   printf("\n Player 1 Move (3 B) : ");
   scanf("%d %c",&y,&x);

   n=y-1;
   m=toupper(x)-65;
  }while(player1(i,j,n,m)!=0);

  do{
   clrscr();
   Refresh();
   printf("\n\n Player 2 select (H 8) : ");
   scanf("%c %d",&x,&y);

   j=toupper(x)-65;
   i=y-1;

   printf("\n Player 2 Move (7 G) : ");
   scanf("%d %c",&y,&x);

   n=y-1;
   m=toupper(x)-65;
  }while(player2(i,j,n,m)!=0);
 }while(1);
}
//*************************************************************************
//*************************************************************************
void New(void){
 int i,j;

 for(i=0;i<8;i++)
  for(j=0;j<8;j++){
   if(i==1)
    strcpy(shat[1][j],"Sarbaz");
   else if(i==6)
    strcpy(shat[6][j],"Sarbaz");
   else
    strcpy(shat[i][j],"null");
  }
 strcpy(shat[0][0],"FaceW");
 strcpy(shat[0][1],"SteedW");
 strcpy(shat[0][2],"FilW");
 strcpy(shat[0][3],"QueenW");
 strcpy(shat[0][4],"KingW");
 strcpy(shat[0][5],"FilW");
 strcpy(shat[0][6],"SteedW");
 strcpy(shat[0][7],"FaceW");


 strcpy(shat[7][0],"FaceB");
 strcpy(shat[7][1],"SteedB");
 strcpy(shat[7][2],"FilB");
 strcpy(shat[7][3],"KingB");
 strcpy(shat[7][4],"QueenB");
 strcpy(shat[7][5],"FilB");
 strcpy(shat[7][6],"SteedB");
 strcpy(shat[7][7],"FaceB");

 Refresh();
}
//*************************************************************************
//*************************************************************************
void Refresh(void){
 register int i,j,z;

 for(i=0;i<8;i++){
  printf("\n\t");
  for(z=0;z<8;z++){
   if(i!=0)
    printf("|");
   else
    printf(" ");

   printf("_______");
  }
  if(i!=0)
   printf("|\n");
  else
   printf("\n");

  for(j=0;j<8;j++){
   if (strcmp(shat[i][j],"null")==0)
    printf("\t|");
   else
    printf("\t|%s",shat[i][j]);
  }
  printf("\t|");
 }

 printf("\n\t");
 for(z=0;z<8;z++)
  printf("|_______");
 printf("|");

 i=13;
 j=65;
 while(i<70){
  gotoxy(i,1);
  putch(j++);
  i=i+8;
 }

 i=3;
 j=49;
 while(i<18){
  gotoxy(7,i);
  putch(j++);
  i=i+2;
 }

 gotoxy(0,20);
}
//*************************************************************************
//*************************************************************************
int player1(int i,int j,int n,int m){

 if(strcmp(shat[i][j],"KingW")==0)
  return King(i,j,n,m);
 else if(strcmp(shat[i][j],"QueenW")==0)
  return Queen(i,j,n,m);
 else if(strcmp(shat[i][j],"FilW")==0)
  return Fil(i,j,n,m);
 else if(strcmp(shat[i][j],"SteedW")==0)
  return Steed(i,j,n,m);
 else if(strcmp(shat[i][j],"Sarbaz")==0)
  return Sarbaz(i,j,n,m,1);
 else if(strcmp(shat[i][j],"FaceW")==0)
  return Face(i,j,n,m);
 else{
  printf("Error");
  return -1;
 }
}
//*************************************************************************
//*************************************************************************
int player2(int i,int j,int n,int m){

 if(strcmp(shat[i][j],"KingB")==0)
  return King(i,j,n,m);
 else if(strcmp(shat[i][j],"QueenB")==0)
  return Queen(i,j,n,m);
 else if(strcmp(shat[i][j],"FilB")==0)
  return Fil(i,j,n,m);
 else if(strcmp(shat[i][j],"SteedB")==0)
  return Steed(i,j,n,m);
 else if(strcmp(shat[i][j],"Sarbaz")==0)
  return Sarbaz(i,j,n,m,2);
 else if(strcmp(shat[i][j],"FaceB")==0)
  return Face(i,j,n,m);
 else{
  printf("Error");
  return -1;
 }
}
//*************************************************************************
//*************************************************************************
void Error(int x,int y,int n,int m){
  if((strcmp(shat[x][y],"null")!=0)&&(x!=n || y!=m))
  error=1;
  puts(shat[x][y]);
  puts(shat[n][m]);
}
//*************************************************************************
//*************************************************************************
void Move(int x,int y,int n,int m){
 char tmp[10];

 strcpy(tmp,shat[n][m]);
 strcpy(shat[n][m],shat[x][y]);
 strcpy(shat[x][y],"null");
}
//*************************************************************************
//*************************************************************************
int King(int x,int y,int n,int m){
 int i,j;

 error=0;
 i=x+1;
 j=y+1;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }

 error=0;
 i=x+1;
 j=y-1;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }

 error=0;
 i=x-1;
 j=y-1;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }

 error=0;
 i=x-1;
 j=y+1;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }

   error=0;
 i=x+1;
 j=y;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }

   error=0;
 i=x;
 j=y+1;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }

 error=0;
 i=x-1;
 j=y;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }

 error=0;
 i=x;
 j=y-1;
 Error(i,j,n,m);
 if(i==n && j==m)
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }
}
//*************************************************************************
//*************************************************************************
int Queen(int x,int y,int n,int m){

 if(Face(x,y,n,m)==0)
  return 0;
 else if(Fil(x,y,n,m)==0)
  return 0;

 return -1;

}
//*************************************************************************
//*************************************************************************
int Sarbaz(int x,int y,int n,int m,int p){

 error=0;
 if(p==1 && x==1 && n==3 && y==m){
  Error(x+1,y,n,m);
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }
 }
 else if(p==2 && x==6 && n==4 && y==m){
  Error(x+1,y,n,m);
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }
 }
 else if(p==2 && (y==m||y-1==m || y+1==m) && x-1==n){
  Error(x-1,y,n,m);
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }
 }
 else if(p==1 && (y==m||y-1==m || y+1==m) && x+1==n){
  Error(x+1,y,n,m);
  if(error==0){
   Move(x,y,n,m);
   return 0;
  }
 }

 return -1;
}
//*************************************************************************
//*************************************************************************
int Steed(int x,int y,int n,int m){

  // x : satr y : soton

 if(x-1==n && y+2==m){
  Move(x,y,n,m);
  return 0;
 }
 else if(x-1==n && y-2==m){
  Move(x,y,n,m);
  return 0;
 }
 else if(x+1==n && y+2==m){
  Move(x,y,n,m);
  return 0;
 }
 else if(x+1==n && y-2==m){
  Move(x,y,n,m);
  return 0;
 }
 else if(x+2==n && y+1==m){
  Move(x,y,n,m);
  return 0;
 }
 else if(x+2==n && y-1==m){
  Move(x,y,n,m);
  return 0;
 }
 else if(x-2==n && y+1==m){
  Move(x,y,n,m);
  return 0;
 }
 else if(x-2==n && y-1==m){
  Move(x,y,n,m);
  return 0;
 }
 else
  return -1;
}
//*************************************************************************
//*************************************************************************
int Face(int x,int y,int n,int m){
 int i,j;

 error=0;
 for(i=x+1,j=y;i<8 && error==0;i++){
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
     }
  }


 error=0;
 for(i=x-1,j=y;i>=0 && error==0;i--){
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
    }
  }

 error=0;
 for(j=y-1,i=x;j>=0 && error==0;j--){
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
    }
  }

 error=0;
 for(j=y+1,i=x;j>=0 && error==0;j++){
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
    }
  }

 error=1;
 return -1;

}
//*************************************************************************
//*************************************************************************
int Fil(int x,int y,int n,int m){
 int i,j;

 error=0;
 for(i=x+1,j=y;i<8 && error==0;i++){// PAIIN && RAST
   j++;
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
     }
  }


 error=0;
 for(i=x-1,j=y;i>=0 && error==0;i--){// BA'LLA && CHAP
   j--;
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
    }
  }

 error=0;
 for(i=x-1,j=y;i>=0 && error==0;i--){// BA'LLA && RAST
   j++;
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
    }
  }

 error=0;
 for(i=x+1,j=y;i<8 && error==0;i++){// PAIIN && CHAP
   j--;
   Error(i,j,n,m);
   if(i==n && j==m)
    if(error==0){
     Move(x,y,n,m);
     return 0;
    }
  }

 error=1;
 return -1;
}





نوع مطلب : آموزش برنامه نویسی ++C، 
برچسب ها :
لینک های مرتبط :


سه شنبه 4 خرداد 1389 10:49 قبل از ظهر
دادا دمت گرم .خیلی با سایتت حال کردم .جون حاجی بازم از این سورس های با حال بذار .
دوشنبه 23 آذر 1388 07:31 بعد از ظهر
mamnun , matalebe kheili mofidi bood ...
شنبه 30 آبان 1388 08:41 بعد از ظهر
آی پی اختصاصی آمریکا 66525002-021
جمعه 29 خرداد 1388 11:19 قبل از ظهر
gashange. vali age too pdf mineveshti va upload mikardi behtar bood. hala geyre gabele khoondane.
شنبه 23 خرداد 1388 09:40 قبل از ظهر
سلام واقعاً وبلاگ مفیدی دارید برنامه شطرنج خیلی بدردم خورد فقط اگه یك بزرگواری كنید توضیح كاملشو كه هر خط چیكار میكنه به همین زبون خودمون تایپ كنید و یا به میلم بفرستید یا تو وبلاگتون بزارید. كاری كه تو جبرانش نمی تونم بكنم فقط براتون دعا می كنم . خواهش می كنم
چهارشنبه 13 خرداد 1388 12:17 قبل از ظهر
agha mer30 ..
dasteT dard nakooone
movafagh bashi
یکشنبه 6 اردیبهشت 1388 08:17 قبل از ظهر
سلام دوست گلم

وب قشنگی داره و مطالبتم جالب و مفید هستش


فقط باید به فکر امار بازدید هم باشید


لینک باکس میهن توسط من و دوست گلم مریم ایجاد شده تا امار بازدید شما به مقدار قابل توجه ای افزایش بده

شما تنها کاری که باید بکنید :


ابتدا به ادرس لینک باکس برین یعنی اینجا :

http://www.mihanbox.co.cc/

و سپس از قسمت ارسال لینک : لینک خودتون رو ارسال کنید با عنوان دلخواهتون (فقط خواهشا غیر مجاز نزارید دوست گلم)

+ نوع لینک یعنی ثابت باشه یا روزانه اگه امارتون الان بالای 500 بازدید روزانه هست میتونید قسمت لینک ثابت رو انتخاب کنید و اگه نه قسمت لینک روزانه

نگران نباشید اگر امارتون بین 200 تا 400 هست من شمارو تو قسمت لینک های ثابت 2 لینک میکنم



سپس از قسمت دریافت کد لینک باکس : کدی که تو اون کادر هست رو کپی کنید تو قالب وبلاگتون تا لینک باکس تو وبلاگتون نمایش داده بشه

اینجوری این لینک باکس تو هزارن وبلاگ و سایت نمایش داده میشه و افراد زیادی رو لینک شما و سایر دوستان کلیک میکنن و بازدید کننده هاتون خیلی خیلی افزایش پیدا میکنن


امتحانش که ضرری نداره ...


پس منتظریم..




قربان شما
میهن خذری
مریم جمالی
یکشنبه 6 اردیبهشت 1388 08:12 قبل از ظهر
سلام دوست گلم

وب قشنگی داره و مطالبتم جالب و مفید هستش


فقط باید به فکر امار بازدید هم باشید


لینک باکس میهن توسط من و دوست گلم مریم ایجاد شده تا امار بازدید شما به مقدار قابل توجه ای افزایش بده

شما تنها کاری که باید بکنید :


ابتدا به ادرس لینک باکس برین یعنی اینجا :

http://www.mihanbox.co.cc/

و سپس از قسمت ارسال لینک : لینک خودتون رو ارسال کنید با عنوان دلخواهتون (فقط خواهشا غیر مجاز نزارید دوست گلم)

+ نوع لینک یعنی ثابت باشه یا روزانه اگه امارتون الان بالای 500 بازدید روزانه هست میتونید قسمت لینک ثابت رو انتخاب کنید و اگه نه قسمت لینک روزانه

نگران نباشید اگر امارتون بین 200 تا 400 هست من شمارو تو قسمت لینک های ثابت 2 لینک میکنم



سپس از قسمت دریافت کد لینک باکس : کدی که تو اون کادر هست رو کپی کنید تو قالب وبلاگتون تا لینک باکس تو وبلاگتون نمایش داده بشه

اینجوری این لینک باکس تو هزارن وبلاگ و سایت نمایش داده میشه و افراد زیادی رو لینک شما و سایر دوستان کلیک میکنن و بازدید کننده هاتون خیلی خیلی افزایش پیدا میکنن


امتحانش که ضرری نداره ...


پس منتظریم..




قربان شما
میهن خذری
مریم جمالی
یکشنبه 6 اردیبهشت 1388 08:03 قبل از ظهر
سلام دوست گلم

وب قشنگی داره و مطالبتم جالب و مفید هستش


فقط باید به فکر امار بازدید هم باشید


لینک باکس میهن توسط من و دوست گلم مریم ایجاد شده تا امار بازدید شما به مقدار قابل توجه ای افزایش بده

شما تنها کاری که باید بکنید :


ابتدا به ادرس لینک باکس برین یعنی اینجا :

http://www.mihanbox.co.cc/

و سپس از قسمت ارسال لینک : لینک خودتون رو ارسال کنید با عنوان دلخواهتون (فقط خواهشا غیر مجاز نزارید دوست گلم)

+ نوع لینک یعنی ثابت باشه یا روزانه اگه امارتون الان بالای 500 بازدید روزانه هست میتونید قسمت لینک ثابت رو انتخاب کنید و اگه نه قسمت لینک روزانه

نگران نباشید اگر امارتون بین 200 تا 400 هست من شمارو تو قسمت لینک های ثابت 2 لینک میکنم



سپس از قسمت دریافت کد لینک باکس : کدی که تو اون کادر هست رو کپی کنید تو قالب وبلاگتون تا لینک باکس تو وبلاگتون نمایش داده بشه

اینجوری این لینک باکس تو هزارن وبلاگ و سایت نمایش داده میشه و افراد زیادی رو لینک شما و سایر دوستان کلیک میکنن و بازدید کننده هاتون خیلی خیلی افزایش پیدا میکنن


امتحانش که ضرری نداره ...


پس منتظریم..




قربان شما
میهن خذری
مریم جمالی
سه شنبه 1 اردیبهشت 1388 04:11 بعد از ظهر
salam,proje haye visual basic 6 ro ham gharar bedin,age komak khastim roo man hesab konin,man barname nevisie barname haye Game net o Anjam midam
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

انجام پروژه های برنامه نویسی سی و سی پلاس پلاس و سی شارپ

انجام پروژه های الکترونیکی و رباتیکی

مدیر وبلاگ : سجاد سلطانی
مطالب اخیر
نویسندگان
جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :














free counters
X بستن تبلیغات
X بستن تبلیغات