نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: برج هانوی با زبان c :)

  1. #1

    آخرین بازدید
    02-01-2012 [ 17:53]
    تاریخ عضویت
    Jul 2009
    محل سکونت
    تهران
    نوشته ها
    240
    سپاس ها
    224
    سپاس شده 544 در 161 پست

    پیش فرض برج هانوی با زبان c :)

    سلام
    این سورسش که با borland نوشته شده:)
    کد HTML:
    //parsipeople Team
    #include <stdio.h>
    #include <dos.h>
    #include <conio.h>
    
    int counterL,counterR=0,counterC=0;
    void paye();
    void mile();
    void mohre(int n);
    void transfer(int n, char from, char to, char temp);
    void counter(char from,char to);
    void move(int n,char from,char to,int counterL,int counterC,int counterR);
    void pak(int n,int x,int y);
    void chap(int n,int x,int y);
    
    void main()
    {
    int n;
    printf("chand disk?" );
    printf("[0<n<11]");
    scanf("%d",&n);
    if(n>10||n<1)
    {printf("tedad eshtebah ast\n");
    getch();
    }
    else
    {
    counterL=n;
    textbackground(7);
    clrscr();
    mile();
    paye();
    mohre(n);
    printf( "\n" );
    transfer(n,'L','R','C');
    getch();}
    }
    /*end main*/
    void transfer( int n, char from, char to, char temp)
    {
    if (n > 0) {
    transfer(n-1, from, temp,to);
    counter(from,to);
    move(n,from,to,counterL,counterC,counterR);
    transfer(n-1,temp,to,from);
    }
    return;
    }
    /*end transfer*/
    void paye()
    {
     for(int i=5;i<=75;i++)
     {if(i>=5&&i<=25)
     {gotoxy(i,23);
    textcolor(4);
    cprintf("%c",219);}
    else
    if(i>=30&&i<=50)
     {gotoxy(i,23);
    textcolor(4);
    cprintf("%c",219);}
    else
    if(i>=55&&i<=75)
     {gotoxy(i,23);
    textcolor(4);
    cprintf("%c",219);}}
    }
    /*end paye*/
    void mile()
    {
    for(int i=10;i<=22;i++)
    {gotoxy(15,i);
    textcolor(12);
    textbackground(4);
    cprintf("%c",'|');}
    for(int i=10;i<=22;i++)
    {gotoxy(40,i);
    textcolor(12);
    textbackground(4);
    cprintf("%c",'|');}
    for(int i=10;i<=22;i++)
    {gotoxy(65,i);
    textcolor(12);
    textbackground(4);
    cprintf("%c",'|');}}
    /*end mile*/
    void mohre(int n)
    {
    int x,y=22;
    x=15-n;
    for(int i=n;i>=1;i--)
    {gotoxy(x,y);
    for(int j=2*i+1;j>=1;j--)
    {textcolor(1);
    cprintf("%c",219);}
    x++;
    y--;}
    mile();
    }
    /*end mohre*/
    void counter(char from,char to)
    {
    switch(from)
    {
    case 'L':counterL--;break;
    case 'R':counterR--;break;
    case 'C':counterC--;break;}
    switch(to)
    {
    case 'L':counterL++;break;
    case 'R':counterR++;break;
    case 'C':counterC++;break;}
    }
    /*end counter*/
    
    void move(int n,char from,char to,int counterL,int counterC,int counterR)
    {int x,y,x1,y1,x2;
    switch(from)
    {
    case 'C':x=40-n;y=22-counterC;pak(n,x,y);break;
    case 'L':x=15-n;y=22-counterL;pak(n,x,y);break;
    case 'R':x=65-n;y=22-counterR;pak(n,x,y);break;}
    switch(to)
    {
    case 'C':x1=40-n;y1=23-counterC;break;
    case 'L':x1=15-n;y1=23-counterL;break;
    case 'R':x1=65-n;y1=23-counterR;break;}
    while(y>=10)
    {y-=1;
    chap(n,x,y);
    sleep(0.5);
    pak(n,x,y);}
    //------------------------------------------------------------
    x2=x1-x;
    if(x2>0)
    {for(int i=1;i<=x2;i++)
    {chap(n,x,y);
     sleep(0.25);
     pak(n,x,y);
     x+=1;}}
    //-------------------------------------------------------------
     else{
     for(int i=1;i<=-x2;i++)
    {chap(n,x,y);
     sleep(0.25);
     pak(n,x,y);
     x-=1;}}
    //---------------------------------------------------------------
    while(y<y1)
    {y+=1;
    chap(n,x,y);
    sleep(0.5);
    pak(n,x,y);}
    
    switch(to)
    {
    case 'C':x1=40-n;y1=23-counterC;chap(n,x1,y1);break;
    case 'L':x1=15-n;y1=23-counterL;chap(n,x1,y1);break;
    case 'R':x1=65-n;y1=23-counterR;chap(n,x1,y1);break;}
    }
    /*end move*/
    void pak(int n,int x,int y)
    {
    for(int i=1;i<=2*n+1;i++)
    {gotoxy(x,y);
    textcolor(7);
    cprintf("%c",219);
    x++;}}
    /*end pak*/
    void chap(int n,int x,int y)
    {
    for(int i=1;i<=2*n+1;i++)
    {gotoxy(x,y);
    textcolor(1);
    cprintf("%c",219);
    x++;
    }
    mile();
    }
    /*end chap*/
    برای کنترل سرعت عدد توی توابع sleep رو دستکاری کنید:)

  2. کاربر روبرو از پست مفید soroush_tayyebi سپاس کرده است .

    Persian Boy (02-11-2010)

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

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

موضوعات مشابه

  1. چطوری تقویم شمسی روی وی بی نصب کنم؟
    توسط Faridman در انجمن رفع مشکلات کاربران تازه وارد برای راه اندازی سایت
    پاسخ ها: 7
    آخرين نوشته: 08-14-2011, 15:26
  2. سوال؟؟؟ روش جدا کردن فایل زبان یک هک از میان فایل زبان وی بی 4 روی سایت؟؟؟؟؟
    توسط rasadkhaneh در انجمن درخواست های کاربران در خصوص ویبولتین ورژن 4
    پاسخ ها: 1
    آخرين نوشته: 03-25-2011, 22:36
  3. نصب وی بی 4 روی لوکال هاست
    توسط Mr.Mohammad در انجمن رفع مشکلات برنامه ویبولتین vBulletin 4.x.x
    پاسخ ها: 3
    آخرين نوشته: 12-19-2009, 23:48
  4. فارسی ساز جستجوی پست و موضوع خود کاربر در جستجوی سایت
    توسط mr.behrooz در انجمن مکمل های فارسی ساز هک های 3.8
    پاسخ ها: 0
    آخرين نوشته: 05-15-2009, 01:29
  5. جستجوی پست و موضوع خود کاربر در جستجوی سایت
    توسط mr.bahram در انجمن هک ها و پلاگین ها vBulletin 3.8.X
    پاسخ ها: 0
    آخرين نوشته: 03-11-2009, 04:43

کاربران خواننده این موضوع : 4

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

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