سورس برج هانوی در فلش

شروع موضوع توسط ++Hadi++ ‏6 آوریل 2013 در انجمن برنامه فلش Flash

  1. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    سلام
    قبلا یکی از دوستان عزیز یه سورس برای الگریتم 8 وزیر در فلش داده بودند.
    خوب استاد دانشگاهمون جناب آقای خرسند گفته بودند که مساله برج هانوی رو گرافیکی طراحی کنیم.خدا رو شکر ما هم این کار رو کردیم.
    گفتم سورسشو اینجا بزارم شاید به درد دوستان بخوره.
    بازی از این قراره که سه تا میله هست به اسم 1 و 2 و 3
    10 یا هر تعداد مهره ای که خواستید هم هستند به شماره های 1 تا 10 یا به شماره های 1 تا تعدادی که دوست داشتید.عرفش ده تاست.
    بعد این مهره ها از شماره 1 که بالاست تا 10 که پایینه پشت سر هم تو میله شماره 1 قرار گرفتند ،به بیان بهتر از شماره 1 تا 10 از بالا به پاین شت شده.حالا باید تمام این مهره ها رو به همین ترتیب یعنی از شماره 1 که بالاست تا 10 که پایینه به ترتیب به میله شماره 2 یا 3 جابه جا کنیم.میله 3 رو فرض می کنیم.حالا باید یکی یکی جابهجا کنید به شرطی که هیچ وقت و هیچ وقت ،هیچ مهره کوچکتر با اتندیس بزرگتر رو نباید رو هیچ مهره با شماره و اندیس کوچکتر بزارید.
    این برنامه ما باید خودش مراحل رو حدس بزنه و جابه جایی ها رو انجام بده.
    به صورت ساده باید گفت

    | | |
    | | |
    | | |
    | | 0
    | | 0
    | | 0
    | | 0
    | | 0
    | | 0
    | | 0
    | | 0
    | | 0
    | | 0
    ------------------
    ------------------
    فرض کنید اینا سه ستون ما هستند و اونا هم مهره هامون هستند که از بالا به پایین از 1 تا 10 شماره گذاری شده اند.حالا قراره این 10 مهره رو از ستون شماره 1 که چپه به ستون شماره سه که راسته منتقل کنید ،با همون ترتیب و اصلا هیچ مهره بزرگی رو رو هیچ مهره کوچیکی نزارید.
    حالا اگه ما کلا سه مهره داشته باشیم یعنی :
    | | |
    | | |
    | | |
    | | 0
    | | 0
    | | 0
    ------------------
    ------------------
    اگه قرار باشه مهره ها رو به خونه شماره 3 منقل کنیم:
    3<---1
    2<---1
    2<---3
    3<---1
    1<---2
    3<---2
    3<---1
    یکی از مهمترین راههای این الگریتم ،راه بازگشتیش هست و الگریتم اصلیش ساده هست :
    PHP:

    function Hanoy(_numOfDives:int=10,From:int=1,To:int=3):void
            {
                if(_numOfDives>0)
                {
                    Hanoy(_numOfDives-1,From,6-From-To);
                    trace(From+" ---> "+To);
                    Hanoy(_numOfDives-1,6-From-To,To);
                }
            }
     
    حالا من اینو گرافیکیش کردم و اینجا میزارمش...
    فقط حتما پوشه com و توابع TweenMax رو از سایت greensock.com دانلود کنید و کنار سورس بزارید...
    موفق باشید...
     

    پیوست ها:

    • Hanoy.rar
      اندازه فایل:
      کیلوبایت 256.3
      نمایش ها:
      166
    آخرین ویرایش: ‏6 آوریل 2013
    نوشته شده توسط ++Hadi++ در ‏6 آوریل 2013
    Saeed2vfx، wgolzar، massoudn و یک نفر دیگر از این ارسال تشکر کرده اند.
  2. m4jidghost

    m4jidghost Member

    ارسال‌ها:
    37
    تشکر شده:
    17
    امتیاز دستاورد:
    8
    مفید بود
     
    نوشته شده توسط m4jidghost در ‏6 آوریل 2013

به اشتراک بگذارید