دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: برنامه معمای 8 (پازل 8)

  1. #1
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    Ok برنامه معمای 8 (پازل 8)

    کد PHP:
    [LEFT]#include
    #include
    #include
    #include
    #include[/LEFT]
     
    [LEFT]#define TRUE 1
    #define FALSE 0[/LEFT]
     
    [LEFT]unsigned int a,b,c,d,e,f,g,h;
    void main(void)
    {
     
    unsigned char chk_crash(unsigned char,unsigned char,unsigned char);
     
    void draw_puzzle(void);
     
    clrscr();
     for (
    a=1;a<=8;a++);
      for (
    b=1;b<=8;b++);
       if (
    chk_crash(a,b,1))
         for (
    c=1;c<=8;c++)
          if ((
    chk_crash(c,b,1)) && (chk_crash(c,a,2)))
           for (
    d=1;d<=8;d++)
        if ((
    chk_crash(d,c,1)) && (chk_crash(d,b,2)) && (chk_crash(d,a,3)))
         for(
    e=1;e<=8;e++)
          if  ((
    chk_crash(e,d,1)) && (chk_crash(e,c,2)) && (chk_crash(e,b,3)) && (chk_crash(e,a,4)))
           for (
    f=1;f<=8;f++)
            if ((
    chk_crash(f,e,1)) && (chk_crash(f,d,2)) && (chk_crash(f,c,3)) && (chk_crash(f,b,4)) && (chk_crash(f,a,5)))
             for (
    g=1;g<=8;g++)
              if ((
    chk_crash(g,f,1)) && (chk_crash(g,e,2)) && (chk_crash(g,d,3)) && (chk_crash(g,c,4)) && (chk_crash(g,b,5)) && (chk_crash(g,a,6)))
               for (
    h=1;h<=8;h++)
            if ((
    chk_crash(h,g,1)) && (chk_crash(h,f,2)) && (chk_crash(h,e,3)) && (chk_crash(h,d,4)) && (chk_crash(h,c,5)) && (chk_crash(h,b,6)) && (chk_crash(h,a,7)))
            {
            
    draw_puzzle();
            
    getch();
            }
              
    getch();
     }
     
    unsigned char chk_crash(unsigned char i,unsigned char j,unsigned char d)
      {
       if ((
    i==j) || (abs(i-j)==d))
        return(
    FALSE);
       else
        return(
    TRUE);
      }
      
    void draw_puzzle(void)
      {
       
    unsigned char a1,b1,a2,b2,i,v;
       
    clrscr();
       for (
    a1=1;a1<=16;a1++)
        for (
    b1=18;b<=65;b1++)
         {
          
    gotoxy(b1,a1+d);
          
    a2=(a1-1)/2+1;
          
    b2=(b1-18)/6+1;
          if (((
    a2+b2)%2)==0)
           
    textcolor(11);
          else
           
    textcolor(1);
          
    cprintf("A\0");
          for (
    i=0;i<8;i++)
           {
        switch(
    i)
         {
          case 
    0:{v=a;break;}
          case 
    1:{v=b;break;}
          case 
    2:{v=c;break;}
          case 
    3:{v=d;break;}
          case 
    4:{v=e;break;}
          case 
    5:{v=f;break;}
          case 
    6:{v=g;break;}
          case 
    7:{v=h;break;}
         }
           
    gotoxy(15+6*v,5+i*2);
           
    cprintf("*\0");
           }
    }
    }[/
    LEFT
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  2. 2 کاربر از پست مفید آبجی سپاس کرده اند .


  3. #2
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : برنامه معمای 8 (پازل 8)

    دو PDF برای حل این مسئله در اینجا قرار می دهم.
    توجه کنید که این مسئله به روش A* حل شده.


    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  4. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  5. #3
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : برنامه معمای 8 (پازل 8)

    این هم یه سورس دیگه :::


    کد PHP:
    #include<conio.h>
    #include<math.h>
    #include<stdio.h>
    #pragmahdrstop
    char pre_move;
    int a[3][3];
    int goal[3][3];
    int zero_i,zero_j;
    int stack[1000000];
    int pop=0;
    void find_zero();
    void puzzle();
    void exchange(int,int,int,int);
    int h1();
    int h2();
    void output();
    void input();
    void save_Q(char);
    void insert_goal();
    #pragma argsused
    //---------------------------------------------------------------------------int main()
    {
    input();
    insert_goal();
    puzzle();
    getch();
    return 
    0;
    }
    //**************************void insert_goal()
    {
    int i,j,s=1;
    for(
    i=0;i<3;i++)
    for(
    j=0;j<3;j++)
    {
    if(
    i==2&&j==2)
    s=0;
    goal[i][j]=s;
    s++;
    }
    }
    //**************************void find_zero()
    {
    int i,j;
    for(
    i=0;i<3;i++)
    for(
    j=0;j<3;j++)
    if(
    a[i][j]==0)
    {
    zero_i=i;
    zero_j=j;
    }
    }
    //**************************void exchange(int i,int j,int x,int y)
    {
    int temp;
    temp=a[i][j];
    a[i][j]=a[x][y];
    a[x][y]=temp;
    }
    //**************************void input()
    {
    int i,j;
    for(
    i=0;i<3;i++)
    for(
    j=0;j<3;j++)
    {
    printf("enter number in [%d][%d]:\n",i,j);
    scanf("%d",&a[i][j]);
    if(
    a[i][j]<0||a[i][j]>8)
    {
    printf("WRONG DIGIT!!!");getch();
    exit(
    0);
    }
    }
    printf("/nplease wait...");
    }
    //******************************int h1()
    {
    int s=0,i,j;
    for(
    i=0;i<3;i++)
    for(
    j=0;j<3;j++)
    if(
    a[i][j]==goal[i][j])
    s++;
    return 
    s;
    }
    //******************************int h2()
    {
    int s,m,i,j,x,y;
    for(
    i=0;i<3;i++)
    for(
    j=0;j<3;j++)
    {
    if(
    a[i][j]==goal[i][j])
    s=0;
    else
    {
    x=i,y=j;
    while(
    a[i][j]!=goal[x][y])
    {
    x++;
    if(
    x==3)
    {
    x=0;
    y++;
    }
    //end of if
    if(y==3)
    y=0;
    }
    //end of while
    s=(abs(x-i)+abs(y-j));
    }
    //end of else
    m+=s;
    }
    //end of for(j)
    return m;
    }
    //********************************void puzzle()
    {
    char next_move='h';int rh1,rh2,lh1,lh2,uh1,uh2,dh1,dh2,bh1,bh2;find_zero();
    if(
    h1()==9)
    output();
    if(
    zero_j!=2&&pre_move!='l')
    {
    exchange(zero_i,zero_j,zero_i,zero_j+1);
    rh1=h1();rh2=h2();next_move='r';
    bh1=rh1;bh2=rh2;
    exchange(zero_i,zero_j,zero_i,zero_j+1);
    }
    if(
    zero_j!=0&&pre_move!='r')
    {
    exchange(zero_i,zero_j,zero_i,zero_j-1);
    lh1=h1();lh2=h2();
    if(
    lh2<bh2||next_move=='h')
    {
    next_move='l';bh1=lh1;bh2=lh2;
    }
    exchange(zero_i,zero_j,zero_i,zero_j-1);
    }
    if(
    zero_i!=0&&pre_move!='d')
    {
    exchange(zero_i,zero_j,zero_i-1,zero_j);
    uh1=h1();uh2=h2();
    if(
    uh2<bh2||next_move=='h')
    {
    next_move='u';bh1=uh1;bh2=uh2;
    }
    exchange(zero_i,zero_j,zero_i-1,zero_j);
    }
    if(
    zero_i!=2&&pre_move!='u')
    {
    exchange(zero_i,zero_j,zero_i+1,zero_j);
    dh1=h1();dh2=h2();
    if(
    dh2<bh2||next_move=='h')
    {
    next_move='d';bh1=dh1;bh2=dh2;
    }
    exchange(zero_i,zero_j,zero_i+1,zero_j);
    }
    pre_move=next_move;
    switch ((
    next_move)){
    case
    'l':
    exchange(zero_i,zero_j,zero_i,zero_j-1);
    save_Q(next_move);
    puzzle();
    break;
    case
    'r':
    exchange(zero_i,zero_j,zero_i,zero_j+1);
    save_Q(next_move);
    puzzle();
    break;
    case
    'u':
    exchange(zero_i,zero_j,zero_i-1,zero_j);
    save_Q(next_move);
    puzzle();
    break;
    case
    'd':
    exchange(zero_i,zero_j,zero_i+1,zero_j);
    save_Q(next_move);
    puzzle();
    break;
    default:
    printf("ERROR!!!");
    exit(
    0);
    }
    //end of switch
    }//***********************************void output()
    {
    int i;
    printf("\n");
    for(
    i=0;i<=pop;i++)
    printf("%c",stack[i]);
    printf("\njob's done!!!");
    getch();
    exit(
    0);
    }
    //***********************************void save_Q(char c)
    {
    pop++;
    if(
    pop==1000000)
    {
    printf("\nOVERFLOW!!!");
    exit(
    0);
    }
    stack[pop]=c;

    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  6. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  7. #4
    کاربر جدید
    رشته تحصیلی
    کامپیوتر
    نوشته ها
    2
    ارسال تشکر
    0
    دریافت تشکر: 0
    قدرت امتیاز دهی
    0
    Array

    پیش فرض پاسخ : برنامه معمای 8 (پازل 8)

    با سلام
    من معمای 8 رو به سه روش متفاوت لازم دارم.لطفا کمک کنید...

  8. #5
    کاربر جدید
    رشته تحصیلی
    کامپیوتر
    نوشته ها
    2
    ارسال تشکر
    0
    دریافت تشکر: 0
    قدرت امتیاز دهی
    0
    Array

    پیش فرض پاسخ : برنامه معمای 8 (پازل 8)

    با سلام
    من حل معمای 8 رو به سه روش مختلف لازم دارم.لطفا کمک کنید...
    اگه دارید، برای من ارسال کنید
    javad_hayati@yahoo.com

  9. #6
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض پاسخ : برنامه معمای 8 (پازل 8)

    نقل قول نوشته اصلی توسط جواد حیاتی نمایش پست ها
    با سلام
    من معمای 8 رو به سه روش متفاوت لازم دارم.لطفا کمک کنید...
    نقل قول نوشته اصلی توسط جواد حیاتی نمایش پست ها
    با سلام
    من حل معمای 8 رو به سه روش مختلف لازم دارم.لطفا کمک کنید...
    اگه دارید، برای من ارسال کنید
    javad_hayati@yahoo.com
    سلام دوست گرامی چند روش ذکر شده ضمن اینکه طبق قانون شماره 5 اطلاعیه ( لطفا قبل از زدن پست مطالعه کنید )

    5- هیچ ایمیلی از طرف کادر مدیران و همکاران سایت علمی نخبگان برای کاربران ارسال نمیشود .
    و طبق قانون شماره 6

    6- هیچ پروژه ای از سمت مدیران و همکاران برای کاربران سایت تهیه و انجام نمیشود ما فقط موظف به راهنمایی شما عزیزان هستیم نه انجام پروژه و حل تمرینات شما عزیزان پس لطفا قبل از زدن پست این نکته رو رعایت کنید
    موفق باشید .
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  10. کاربرانی که از پست مفید آبجی سپاس کرده اند.


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

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

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

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

  1. مقاله: تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي
    توسط engeneer_19 در انجمن هوش مصنوعی
    پاسخ ها: 0
    آخرين نوشته: 15th April 2010, 10:51 AM
  2. دانلود: برترين برنامه هاي رايگان 1388
    توسط Victor007 در انجمن سایر نرم افزارها
    پاسخ ها: 0
    آخرين نوشته: 12th December 2009, 12:42 PM
  3. مقاله: تفاوتهاي برنامه ريزي استراتژيک در سازمانها
    توسط MR_Jentelman در انجمن مجموعه مدیریت اجرایی
    پاسخ ها: 0
    آخرين نوشته: 27th July 2009, 10:14 AM
  4. سنجش موفقيت برنامه ريزي فناوري اطلاعات
    توسط engeneer_19 در انجمن مباحث فناوری اطلاعات
    پاسخ ها: 0
    آخرين نوشته: 26th July 2009, 08:33 PM

کلمات کلیدی این موضوع

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

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