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

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

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

موضوع: پیدا کردن مسیر maze به زبان ++c

  1. #1
    کاربر جدید
    نوشته ها
    22
    ارسال تشکر
    1
    دریافت تشکر: 34
    قدرت امتیاز دهی
    0
    Array

    پیش فرض پیدا کردن مسیر maze به زبان ++c

    کد:
    #include <iostream.h>
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <iomanip.h>
    const n=20;
    const m=20;
    char x[m][n]={{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','​#'},
                      {'.','.','.','.','#','#','#','.','.','#','.','.','.','.','.','#','#','#','#​','#'},
                      {'#','#','#','.','#','.','#','#','.','#','.','#','#','#','.','#','#','#','.​','#'},
                      {'#','#','#','.','#','.','#','.','.','#','.','.','.','#','.','.','.','#','.​','#'},
                      {'#','#','#','.','.','.','#','.','#','#','#','#','.','#','#','#','.','#','.​','#'},
                      {'.','.','.','#','#','.','#','.','#','#','#','#','.','.','.','#','.','.','.​','#'},
                      {'#','#','.','.','.','.','#','.','.','#','.','.','#','#','.','#','#','.','#​','#'},
                      {'#','#','.','#','#','#','#','#','.','.','.','.','#','.','.','#','#','.','#​','#'},
                      {'#','.','.','#','#','#','.','.','.','#','#','.','#','.','#','#','#','.','#​','.'},
                      {'#','.','#','#','#','#','.','#','#','.','#','.','#','.','.','#','.','.','#​','#'},
                      {'#','.','.','.','#','.','.','#','#','.','#','.','#','#','.','#','.','#','#​','#'},
                      {'#','#','#','.','#','.','#','#','#','#','#','.','#','.','.','#','.','#','#​','#'},
                      {'#','.','.','.','#','.','#','#','#','.','.','.','#','.','#','.','.','#','#​','#'},
                      {'#','.','#','#','#','.','#','#','#','.','#','#','#','.','#','.','#','#','#​','#'},
                      {'#','.','#','#','#','.','#','#','#','.','#','#','.','.','#','.','#','#','#​','#'},
                      {'.','.','#','#','#','.','.','.','#','.','#','#','.','#','#','.','#','#','#​','#'},
                      {'#','.','.','.','.','#','#','.','#','.','#','#','.','#','#','.','.','.','.​','#'},
                      {'#','#','#','#','.','#','#','.','#','.','.','#','.','#','#','#','#','#','.​','#'},
                      {'#','#','#','#','.','.','.','.','#','#','.','.','.','#','#','#','#','#','.​','#'},
                      {'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','.​','#'}};
    class maze
    {
    //written by : navid
      public:
        maze(){finish=0;}
        void draw(void);
        void insert(void);
        int search(void);
        void  slow(void);
        void move(int, int, int);
        int end(int, int);
      private:
        int stp;
        int gapi[10],gapj[10];
        int finish;
     };
    //*********************************************
    void maze::insert()
     {
      char ch;
      int i,j;
      cout<<"press any key to start...";
      getch();
      stp=1;
      draw();
      int k=search();
      if(k<=1)
        {
         cout<<"\n\n not find way...";
         getch();
         exit(0);
        }
      cout<<"\n\nthere is "<<k<<" ways existing , press key...";
      getch();
      clrscr();
      cout<<"if you have enter the start data press (y).\nelse press any key:";
      ch=getch();
      if(ch=='y')
        {
         cout<<"\n\nenter the coordinate:\n\n";
         cout<<"enter i:";
         cin>>i;
         cout<<"enter j:";
         cin>>j;
        }
      else
        {
         i=gapi[0];
         j=gapj[0];
        }
      cout<<"\n\nif you have slow move press (y). \nelse press any key:";
      ch=getch();
      if(ch=='y')
        stp=300;
      else
        stp=200;
      move(1,i,j);
      move(2,i,j);
      move(3,i,j);
      move(4,i,j);
      if(finish)
         cout<<"\n \n find the way...";
      else
         cout<<" \n\n not find any way...";
     }
    //***********************************
    int maze::search(void)
     {
      int k=0;
      for(int i=0;i<m;i++)
      if(x[i][0]=='.')
        {
         gapi[k]=i; gapj[k]=0;
         k++;
        }
      for(int z=0;i<m;i++)
      if(x[z][n-1]=='.')
       {
         gapi[k]=z; gapj[k]=n-1;
         k++;
        }
      for(int j=0; j<n;j++)
      if(x[0][j]=='.')
        {
         gapi[k]=0; gapj[k]=j;
         k++;
        }
      for(int b=0;j<n;j++)
      if(x[m-1][b]=='.')
        {
         gapi[k]=m-1; gapj[k]=b;
         k++;
        }
      return (k);
     }
    //*****************************************
    void maze::draw (void)
     {
      clrscr();
      for(int p=0;p<m;p++)
        {
         for(int q=0;q<n;q++)
            cout<<x[p][q]<<setw(3);
         cout<<endl;
        }
      slow();
     }
    //*****************************
    int maze::end(int i,int j)
     {
      int k=finish;
      if(i==0 || i==m-1 || j==n-1)
        if(i!=gapi[0] && j!=gapj[0])
         {
          finish=1;
          k=1;
         }
      return (k);
     }
    //******************************
    void maze::slow(void)
    {
            for(int p=0;p<stp;p++)
                for(int q=0;q<stp;q++)
                    for(int r=0;r<stp;r++);
    }
    //*********************************
    void maze::move(int dir, int i, int j)
     {
      if(end(i,j))
         return;
      if(dir==1 && j+1<n && x[i][j+1]=='.')
        {
         x[i][j]='o';
         x[i][j+1]='M';
         draw();
         move(1,i,j+1);
         move(2,i,j+1);
         move(3,i,j+1);
         move(4,i,j+1);
         move(0,i,j+1);
        }
      else if(dir==2 && i+1<m && x[i+1][j]=='.')
        {
          x[i][j]='o';
          x[i+1][j]='M';
          draw();
          move(1,i+1,j);
          move(2,i+1,j);
          move(3,i+1,j);
          move(4,i+1,j);
          move(0,i+1,j);
        }
      else if(dir==3 && j-1>=0 && x[i][j-1]=='.')
        {
          x[i][j]='o';
          x[i][j-1]='M';
          draw();
          move(1,i,j-1);
          move(2,i,j-1);
          move(3,i,j-1);
          move(4,i,j-1);
          move(0,i,j-1);
        }
      else if(dir==4 && i-1>=0 &&  x[i-1][j]=='.')
        {
          x[i][j]='o';
          x[i-1][j]='M';
          draw();
          move(1,i-1,j);
          move(2,i-1,j);
          move(3,i-1,j);
          move(4,i-1,j);
          move(0,i-1,j);
        }
      else if(dir==0)
        {
         x[i][j]='.';
         draw();
        }
      return;
     }
    //**********************************
    int main()
     {
      maze m;
      m.insert();
      getch();
      return 0;
     }
    منبع:دانشجو كلوپ

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


  3. #2
    دوست آشنا
    نوشته ها
    672
    ارسال تشکر
    1,826
    دریافت تشکر: 4,412
    قدرت امتیاز دهی
    2955
    Array
    BaAaroOoN's: جدید134

    پیش فرض پاسخ : پیدا کردن مسیر maze به زبان ++c

    نقل قول نوشته اصلی توسط emir.yanliz نمایش پست ها
    کد:
    سلام دوست عزیز
    ولی اینی که من میبینم نمیتونه رندومی عمل کنه
    ینی مسیر همیشه یه مسیر یکسان هستش.و نمیتونه درهر بار بازی،تغییر کنه.و updateشه
    در ثانی یک مشکل اساسی دیگه هم داره و اون این هستش که به نظر من بهتره که به صورت پشته عمل کنه
    به چه صورت؟؟؟به این صورت که مسیر به گونه ای باشه که هر بار pushبشه در هر مسیر.....و اگر تو اون مسیر جلو رفت و دید به بن بست برخورد کرده دوبارهpopبشه به نقطه ی اول برگرده
    ولی سورسی که شما اینجا گذاشتین چند تا خروجی داره.ینی برنامه بهینه نیست
    باید طوری باشه که فقط یه خروجی داشته باشه.که کاربر فقط از یک راه بتونه موفق به حل مارپیچ بشه
    منتظر جوابتون هستم
    سپاس

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


  5. #3
    دوست آشنا
    نوشته ها
    672
    ارسال تشکر
    1,826
    دریافت تشکر: 4,412
    قدرت امتیاز دهی
    2955
    Array
    BaAaroOoN's: جدید134

    پیش فرض پاسخ : پیدا کردن مسیر maze به زبان ++c

    در ضمن،سورس شما نقطه ی شروع رو مشخص نمیکنه!!!
    ینی الان برای من توضیح بدید که نقطه ی شروع حرکت در این مارپیچ از کجا هستش؟؟؟؟

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


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

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

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

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

  1. خبر: سیارک خطرناک گم‌شده، پیدا شد
    توسط Easy Bug در انجمن اخبار نجوم
    پاسخ ها: 1
    آخرين نوشته: 15th October 2012, 06:04 PM
  2. دانلود فیلم The Maze
    توسط Bad Sector در انجمن فیلم های ترسناک
    پاسخ ها: 0
    آخرين نوشته: 3rd February 2011, 12:55 AM
  3. پاسخ ها: 0
    آخرين نوشته: 13th August 2010, 10:09 PM
  4. سیره پیامبر اعظم- کتاب و نرم افزار
    توسط kamanabroo در انجمن کتب مذهبی
    پاسخ ها: 0
    آخرين نوشته: 12th February 2010, 10:30 AM
  5. پاسخ ها: 0
    آخرين نوشته: 24th December 2009, 11:24 AM

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

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

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