تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 2 از 2

نام تاپيک: راهنمایی در مورد برنامه 8 وزیر

  1. #1
    پروفشنال sia0368's Avatar
    تاريخ عضويت
    Jun 2006
    محل سكونت
    تهران پاریس
    پست ها
    997

    پيش فرض راهنمایی در مورد برنامه 8 وزیر

    با سلام من این برنامه رو تو اینترنت گیر اوردم ولی بعضی از قسمتهاش رو نفهمیدم اگه میشه یه نفر قسمتهای رنگی رو برام توضیح بده ممنون
    #include <stdio.h>
    #include <conio.h>
    int temp[9][3];
    int vazirha[100][9];
    int vazir_num;
    int check(int satr,int sotoon, int tmp_num);
    int main()
    {
    int satr,sotoona,sotoonb,sotoonc,sotoond,sotoone,sotoo nf,sotoong,sotoonh,s,shomare_sotoon=1;
    int chap=0;
    clrscr();
    for(sotoona=1;sotoona<=8;sotoona++){
    satr=1;
    //if(!check(satr,sotoona,satr-1))
    //continue;
    //else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoona;
    //}
    for(sotoonb=1;sotoonb<=8;sotoonb++){
    satr=2;
    if(!check(satr,sotoonb,satr-1))
    continue;
    else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoonb;
    }
    for(sotoonc=1;sotoonc<=8;sotoonc++){
    satr=3;
    if(!check(satr,sotoonc,satr-1))
    continue;
    else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoonc;
    }
    for(sotoond=1;sotoond<=8;sotoond++){
    satr=4;
    if(!check(satr,sotoond,satr-1))
    continue;
    else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoond;
    }

    for(sotoone=1;sotoone<=8;sotoone++){
    satr=5;
    if(!check(satr,sotoone,satr-1))
    continue;
    else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoone;
    }
    for(sotoonf=1;sotoonf<=8;sotoonf++){
    satr=6;
    if(!check(satr,sotoonf,satr-1))
    continue;
    else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoonf;
    }

    for(sotoong=1;sotoong<=8;sotoong++){
    satr=7;
    if(!check(satr,sotoong,satr-1))
    continue;
    else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoong;
    }

    for(sotoonh=1;sotoonh<=8;sotoonh++){
    satr=8;
    if(!check(satr,sotoonh,satr-1))
    continue;
    else{
    temp[satr][1]=satr;
    temp[satr][2]=sotoonh;
    clrscr();
    printf("tabrik\n shoma be javab residid \n\n");
    //sotoona=sotoonb=sotoonc=sotoond=sotoone=sotoonf=so toong=sotoonh=20;
    printf("vazirha = ");
    for (s=1;s<=8;s++){
    vazirha[vazir_num][s]=temp[s][2] ;
    }
    vazir_num++;
    printf ("%i",vazir_num);
    if(vazir_num>100){
    sotoona=sotoonb=sotoonc=sotoond=sotoone=20;
    sotoonf=sotoong=sotoonh=20;
    }//end if

    }
    }///// for sotoon-h
    }///// for sotoon-g
    }///// for sotoon-f
    }///// for sotoon-e
    }///// for sotoon-d
    }///// for sotoon-c
    }///// for sotoon-b

    }///// for sotoona


    getch();
    printf ("\n\n entehaye batname\n");
    for(chap=0;chap<vazir_num;chap++){
    if (chap<10)
    printf("0=");
    else
    printf ("%i=",chap);
    for(shomare_sotoon=1;shomare_sotoon<=8;shomare_sot oon++)
    printf ("%i",vazirha[chap][shomare_sotoon]);

    printf ("\n");
    }
    getch();
    return 0;
    }


    //$$$$$$$$$$ Check kardane barkhordha $$$$$$$$$;

    int check(int satr,int sotoon, int tmp_num){

    int sa,so,i,j,k=1; // motaghayerhaye komaki baraye satr va sotoone vazirhaye ghabli

    for (i=1;i<=tmp_num;i++){
    sa=temp[i][1]; // satre vazire i'om
    so=temp[i][2]; // sotoone vazire i'om
    /*
    satr va sotoone vazire jari nabayad ba hich yek az
    vazirhaye sabet shodeye ghabli barabar bashad
    banabarin az amalgare 'or' estefade mikonim
    chon hata yeki az in do barabar bashad vazirha barkhord peyda mikonand
    */
    if ( satr==sa || sotoon==so)
    return 0;
    //------------------------------------------------
    /*
    baraye halate zarbedari
    ebteda bazooye chap va payin ra barresi mikonim
    */
    for(j=sa , k=so; j && k; j-- , k--)
    if (satr==j && sotoon==k)
    return 0;


    // bazooye samte rast va bala
    for(j=sa , k=so; j<=8 && k<=8; j++ , k++)
    if (satr==j && sotoon==k)
    return 0;

    // bazooye rast va payin
    for(j=sa , k=so; j && k<=8; j-- , k++)
    if (satr==j && sotoon==k)
    return 0;

    // bazooye chap va bala
    for(j=sa , k=so; j<=8 && k; j++ , k--)
    if (satr==j && sotoon==k)
    return 0;
    }// payane for temp[i]
    /*
    dar soorati ke dar bala sharayet bargharar nashavad
    va meghdar 0 bargardande nashavad yani vazire jari
    ba hichyek az vazirhaye ghabli barkhord nadashte
    va meghdar 1 bargardande mishavad
    */
    return 1;
    }

  2. #2
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Sep 2008
    پست ها
    253

    پيش فرض

    سلام
    هر سطر در صفحه ی 8 در 8 شطرنج باید حتما یه وزیر داشته باشه. وزیرا قراره یه جوری قرار بگیرن که هیچ کدوم نتونن هم دیگه رو بزنن.
    در برنامه ای که شما گذاشتین، اگه s یه سطر باشه یه وزیر توی این سطر هست temp[s][2]o شماره ستونیه که وزیر اون جاست.

    در قسمت قزمز اول
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    vazirha[vazir_num]o خودش یه آرایه س که شماره ستون های وزیر دار رو در اون قرار می دیم.برای این کار نوشته شده

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    vazir_num تعداد حالت هایی را که می شه وزیرا رو چید نگه میداره.

    قسمت قرمز دوم آرایه ی vaziha رو چاپ میکنه که حالت های مختلف چیدن مشخص میشن.
    برنامه یه خرده بد نوشته شده.
    در واقع غیر حرفه ایه.
    با تابع های بازگشتی میشد بهتر نوشت.
    یه خرده تغییرش دادم که بتونم بخونمش:


    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •