شنبه 27 آبان 1396 | Saturday 18 th of November 2017 صفحه اصلی گروه الکترونیکی کامپیوتر
ساختار اموزش الگوریتم knapsack در نرم افزار swish max

برای نشان دادن اشیاء ، مکعب هایی را در نظر گرفتیم که در یک وجه انها وزن شئ و در وجه دیگر ان ارزش شئ درج شده است. و همچنین تصویر کوله پشتی را به صورت نمادین در صفحه قرار داده و وزن کوله پشتی را روی ان درج کردیم.

طراحی مکعب ها و کوله پشتی در نرم افزار photo impact  انجام شد. ابتدا برای هریک از اشیاء فایل جدیدی با زمینه transparent  باز کرده و نوع ان را gifقرار دادیم. سپس با استفاده از پانل ابزار و ابزار shape   به  تعداد اشیاء مثال ،مکعبهایی را در صفحه کشیدیم. البته در نرم افزار photo impactامکان درج اشکال چند بعدی وجود ندارد . برای کشیدن مکعب سه مستطیل  کشیده و با ابزار transform  انها را تغییر شکل وبه مکعب تبدیل کردیم. سپس با ابزار text   در دو وجه هر  مکعب ارزش و وزن مربوط به  اشیاء مثال تایپ کردیم. در ادمه بر روی هر یک از مکعب ها از پانل گالری و منوی material attributeرنگ و mode  های مختلف اعمال کردیم تا از هم متمایز شوند.

تصویر کوله پشتی را نیز از پانل libraries، گزینه ی template  و  سپس  منوی path  از بین تصاویر موجود انتخاب و با استفاده از ابزار متن ، وزن کوله پشتی را طبق مثال درج کردیم.

در فریم اول ، مانند دیگر الگوریتم ها، کادر و جعبه متن کد الگوریتم و کلید های "مرحله بعد" ، " مرحله قبل "  و" اولین مرحله" را سمت چپ قرار داده و کادر توضیحات مشخصات الگوریتم را نیز در طرف دیگر می گذاریم. سپس از طریق ابزار درج تصویر ، insert image  ، مکعب های کوله پشتی را بر روی صفحه کاری و در محل مناسب چیدیم.

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

برای مرتب کردن اشیاء بر اساس نسبت ارزش به وزن ان (profit / weight )  جدولی را طراحی به شرح زیر طراحی کردیم. ستونهای جدول شامل تصاویر کوچک شده اشیاء مثال که در اینجا به شکل مکعب هستند بوده  و سطرهای ان شامل ارزش و وزن و نسبت ارزش به وزن مربوط به هر شئ می باشند. و خانه های جدول را با اعداد مربوط به مثال پر می کنیم.

جدول و همه محتویاتش را انتخاب و بر روی ان کلیک راست کرده و از طریق منوی میانبر به spriteیا همان movie clip  تبدیل می کنیم. سپس movie clip  را  باز کرده و اشیاء به ترتیب بر اساس نسبت ارزش به وزنشان (profit / weight)از پایین تا بالا می چینیم. نام این movie clipرا sort-objectsگذاشتیم.

در فریم اول تا ده خط timeline  داخل movie clip  به ستون جدول افکت می دهیم. و از فریم بیست به بعد هم سطرها و محتویات خانه های جدول را افکت و جلوه گذاری می کنیم. نرم افزار swish  شامل افکت و جلوه های متنوعی است که با راست کلیک بر روی شئ مورد نظر در خط timelineقابل دسترس هستند.

در فریم های مرحله دوم که فاصله 5 تا 10 فریم های timelineصفحه کاری می باشد، sort-object  را place  می کنیم. این نکته را باید در نظر داشت که ممکن است کاربر بخواهد مراحل الگوریتم را مرور کرده و بخواهد از بعضی از مراحل سریع بگذرد و فقط نتیجه ان مرحله را مشاهده کند.

برای این منظور در مرحله بعد از مرحله مرتب کردن اشیاء در جدول ، با استفاده از دستور gotoandstop(fram)، خط timelineرا به فریمی از sort clipمی بریم که در انجا تمام اشیاء مرتب شده و افکت همه اجزای جدول به پایان رسیده و افکت stopقبل از ان قرار دارد.

بدین ترتیب وقتی کاربر این مرحله را برای بار چندم ، مرور کرده میتواند منتظر جزئیات و جلوه گذاری های این مرحله نمانده و با کلیک بر روی کلید "مرحله بعد" به مرحله سوم رفته و فقط نتیجه مرحله دوم الگوریتم که جدول مرتب شده از اشیاء است را مشاهده کند. این دستور را به این شکل در مرحله سوم که  فریم های 10 تا 15 است در پانل script  می نویسیم :

onFrame (10)  {

sort-objects.gotoAndStop(70)

}

فریم 70 اخرین فریم sort-objectاست  که در انجا افکتهای اشیاء داخل این movie clipبه پایان رسیده و افکتstop  قبل از ان قرار دارد.

خط بعدی کد الگوریتم ، شامل تعریف ارایه ای به نام Xاست که به تعداد اشیاء این مثال خانه دارد و اندیس هر خانه مربوط به یکی از اشیاء شئ است. به طور پیش فرض مقادیر تمام خانه های این ارایه صفر است. در ادامه اگر شئ به کوله اضافه شود مقدار  خانه معادل این شی در ارایه مقدارش از صفر به یک تغییر می کند و در واقع این ارایه خروجی الگوریتم کوله پشتی است .

برای نشان دادن این ارایه ، جدولی را با ستون در انتهای صفحه رسم کرده و ستونهایش را اسم و اندیس ارایه و سطرهایش را مقدار پیش فرض صفر قرار می دهیم. سپس ارایه را به movie clip  تبدیل کرده و در فریم مربوط به این مرحله ، قرار می دهیم

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26