نمایش نتایج 1 تا 5 از 5

نام تاپیک: برنامه هشت وزیر به صورت ریکرسیو

  1. #1

    Question برنامه هشت وزیر به صورت ریکرسیو

    سلام دوستان عزیز
    کسی میتونه برنامه هشت وزیرو به صورت ریکرسیو به من بده؟؟؟؟؟؟؟
    ممنون میشم ازتون.

  2. #2

    نقل قول: برنامه هشت وزیر به صورت ریکرسیو

    نقل قول نوشته شده توسط nahiderashidy مشاهده تاپیک
    سلام دوستان عزیز
    کسی میتونه برنامه هشت وزیرو به صورت ریکرسیو به من بده؟؟؟؟؟؟؟
    ممنون میشم ازتون.
    من میتونم بدم فقط بگو چه جوری؟

  3. #3

    نقل قول: برنامه هشت وزیر به صورت ریکرسیو

    #include <stdio.h>
    #include <conio.h>
    /*-----------------*/
    int aray[8][8]={0},rp=1,j_o[8]={0},Vazir_no,j,Ok,Ok2=1,R1=0,Ans=1,X=0;
    void DrawChes(void);
    void Tiker(void);
    void DrawData(void);
    void GoBack(void);
    /*-----------------*/
    void main(void){
    int k,l;
    textbackground(1);
    clrscr();
    Vazir_no=0;
    j=-1;
    while(Ok2==1){
    Ok=1;
    for( ;j<8&&Ok==1;j++){
    if(aray[Vazir_no][j]==0){
    Tiker();
    Ok=0;
    j_o[Vazir_no]=j+1;
    Vazir_no++;
    if(Vazir_no==8){
    DrawChes();
    DrawData();
    getch();
    if(rp>25){
    rp=1;
    X++;
    }
    gotoxy(X*12+19,rp++);
    textbackground(3); textcolor(0);
    cprintf("%2d:",Ans++);
    textbackground(3); textcolor(1);
    for(k=0;k<8;k++)
    for(l=0;l<8;l++)
    if(aray[k][l]>49)cprintf("%1d",l+1);
    }
    j=-1;
    }
    else if (j>7){
    for(k=0;k<8;k++)
    for(l=0;l<8;l++)
    if( aray[k][l]==Vazir_no || aray[k][l]==(50+Vazir_no-1) )
    aray[k][l]=0;
    GoBack();
    }
    }
    if (j>7){
    if(j_o[Vazir_no-1]>7){
    for(k=0;k<8;k++)
    for(l=0;l<8;l++)
    if(aray[k][l]==Vazir_no||aray[k][l]==50+Vazir_no-1)
    aray[k][l]=0;
    }
    GoBack();
    }
    }
    }
    /*----------------------*/
    void GoBack(void){
    int register k,l;
    if(j>=7/*&&j<9*/&&Vazir_no>0){
    for(k=0;k<8;k++)
    for(l=0;l<8;l++)
    if( aray[k][l]==Vazir_no || aray[k][l]==(50+Vazir_no-1) )
    aray[k][l]=0;
    j=j_o[Vazir_no-1];
    Vazir_no--;
    Ok=1;
    }
    else{
    Ok2=0;
    }
    }
    /*----------------------*/
    void Tiker(void){
    int k;
    aray[Vazir_no][j]=50+Vazir_no;
    for(k=0;k<8;k++) if(aray[Vazir_no][k]==0)aray[Vazir_no][k]=Vazir_no+1;
    for(k=0;k<9;k++) if(aray[k][j]==0)aray[k][j]=Vazir_no+1;
    for(k=0;k<8;k++)
    if( (Vazir_no+k)<8 && (j+k)<8 && aray[Vazir_no+k][j+k]==0 )
    aray[Vazir_no+k][j+k]=Vazir_no+1;
    for(k=-8;k<8;k++)
    if( (Vazir_no+k)<8 && (j-k)>-1 && aray[Vazir_no+k][j-k]==0 )
    aray[Vazir_no+k][j-k]=Vazir_no+1;
    }
    /*----------------------*/
    void DrawChes(void){
    int k,l,m;
    for(k=0;k<8;k++){
    textbackground(4);
    textcolor(14);
    gotoxy(2*k+2,1);
    cprintf("%c ",'A'+k);
    gotoxy(1,k+2);
    cprintf("%1d",k+1);
    textbackground(9);
    for(l=1;l<9;l++){
    for(m=1;m<9;m++)
    if((l%2&&m%2)|| !(l%2||m%2)){
    gotoxy(2*l,m+1);
    textbackground(7);
    textcolor(7);
    if(aray[l-1][m-1]!=0){
    textbackground(7);
    textcolor(1);
    if(aray[l-1][m-1]>20) cprintf("* ");
    else cprintf("°°");
    }
    else{
    cprintf("²²");
    }
    }
    else{
    gotoxy(2*l,m+1);
    textbackground(5);
    if(aray[l-1][m-1]!=0){
    textbackground(5);
    textcolor(15);
    if(aray[l-1][m-1]>20) cprintf("* ");
    else cprintf("°°");
    }
    else{
    textbackground(5);
    textcolor(5);
    gotoxy(2*l,m+1);
    cprintf("²²");
    }
    }
    }
    }
    }
    /*----------------------*/
    void DrawData(void){
    int register k,l;
    if(rp>=20){
    textbackground(1);
    clrscr();
    rp=1;
    }
    gotoxy(1,25);
    for(l=0;l<8;l++) cprintf("%2d.",j_o[l]);
    gotoxy(19,rp++);
    textbackground( 0 );
    textcolor( 15 );
    cprintf("Vazir_no=%d,j=%d,j[i]=%d,j[i-1]=%d",Vazir_no,j,j_o[Vazir_no],j_o[Vazir_no-1]);
    for(k=0;k<8;k++){
    gotoxy(50,k+1);
    for(l=0;l<8;l++){
    textbackground(0);
    textcolor( aray[l][k] );
    if(aray[l][k]>=50){
    textbackground(7);
    textcolor( aray[l][k]-49 );
    }
    cprintf("%2d.",aray[l][k]);
    }
    }
    }

    _________________

  4. #4

    نقل قول: برنامه هشت وزیر به صورت ریکرسیو

    مرسی از لطفت دوست عزیز

  5. #5

    نقل قول: برنامه هشت وزیر به صورت ریکرسیو

    ولی من این برنامه رو به صورت ریکرسیو میخوام(تابعی که خودشو تو خودش صدا بزنه)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •