Spiral Maker
در این پروژه اسکرچ می خواهیم هرگاه کاربر(شخص استفاده کننده از پروژه) روی صحنه نمایشِ اسکرچ کلیک کرد یک مارپیچ در همان نقطه رسم می شود. این پروژه از سایت دانشگاه MIT آمریکا دپارتمان اسکرچ گرفته شده است. در ادامه مطلب در همین صفحه دستورات برنامه نویسی اسکرچ که در ساخت این پروژه استفاده شده است را توضیح می دهیم. همان طور که در لیست شخصیت های اسکرچ قابل مشاهده است در این پروژه فقط از شخصیت مداد استفاده شده است. بر روی شخصیت مداد کلیک کرده و به صفحه script می رویم تا باهم دستورات برنامه نویسی نوشته شده در این شخصیت را مورد بررسی قرار دهیم. همان طور که در صفحه script این شخصیت دیده می شود، از یک دستور تعریف بلاک استفاده شده است که کاری به آن نداریم. آن را فعلا ندید گرفته و باقی دستورات را مثل قبل مورد بررسی قرار می دهیم. در ابتدا یک رویداد پرچم سبز بالای مجموعه ای از دستورات برنامه نویسی دیده می شود. بنابراین این مجموعه دستورات برنامه نویسی اسکرچ که زیر رویداد پرچم سبز استفاده شده اند وقتی اجرا می شود که بازیکن روی پرچم سبز کلیک کند. دستور set pen size 1 نوک قلم نقاشی را به اندازه 1 تنظیم می نماید. سپس دستور pen up قلم را از روی صفحه نمایش برداشته (یعنی قلم را کمی بالاتر از صفحه نمایش قرار می دهد) سپس دستور Hide شخصیت مداد را مخفی می کند. دلیل مخفی کردن شخصیت مداد که تنها شخصیت استفاده شده در پروژه می باشد این است که ما نمی خواهیم هنگام نقاشی کشیدن قلم دیده شود. دستور set distance مقدار فاصله دایره هایی که قرار است در مارپیچ کشیده شوند را صفر می دهد که مارپیچ اول یک نقطه باشد.دستور clear که بعد از distance اجرا می شود صحنه نمایش را پاک می کند که اگر از اجراهای قبلی مارپیچی روی صفحه نمایش وجود دارد پاک شود تا صحنه نمایش برای نقاشی جدید آماده شود. نوبت به اجرای حلقه forever می رسد. حلقه تکرار forever عبارت شرطی خودش را بی نهایت بار اجرا می کند. اما عبارت شرطی چه می گوید؟ اگر دکمه چپ موس توسط بازیکن فشار داده شود دستور draw a spiral اجرا می شود. دستور draw a spiral در بین دستورات اسکرچ نیست. این دستور به همراه دستور define draw a spiral توسط برنامه نویس ساخته شده است. هنگامی که دستور draw a spiral در قسمت شرطی اجرا می شود کنترل اجرای برنامه توسط اسکرچ به قسمت define draw a spiral منتقل می شود. به عبارت دیگر در حالت کلی هسته نرم افزار اسکرچ دستورات برنامه نویسی را از بالا به پایین اجرا می کند حال که به دستور draw a spiral می رسد کنترل اجرای برنامه را به قسمتی از دستورات برنامه نویسی منتقل می کند که اسم آن define draw a spiral باشد. اکنون اسکرچ اولین دستور بعد از define draw a spiral را اجرا می کند. اولین دستور go to mouse pointer است که شخصیت مداد را به محلی که مکان نمای موس را هم اکنون در آن قرار دارد، منتقل می کند. سوالی که مطرح می شود این است که چرا باید شخصیت مداد به محلی منتقل شود که اشاره گر موس هم اکنون در آن محل قرار دارد؟ به این خاطر که ما می خواهیم هر جایی از صحنه نمایش که بازیکن کلیک کرد مارپیچ در همان نقطه رسم شود. دستور point in direction جهت مداد را تنظیم می کند که مقدار این جهت توسط یک دستور pick random 0 to 360 تعیین می شود. یعنی ابتدا دستور pick random یک عدد شانسی بین 0 تا 360 تولید می کند، سپس این عدد تولید شده را به دستور point in direction تحویل می دهد تا جهت مداد مشخص شود. حال نوبت به اجرای حلقه تکرار repeat می رسد. مقدار تکرار برای دستور repeat 100 در نظر گرفته شده است. این مقدار تعداد دایره های مارپیچ را تعیین می کند که هرچقدر عدد بزرگتری وارد شده باشد تعداد دایره های مارپیچ نیز بیشتر خواهد شد. اما دقیق تر شویم ببینیم چرا با در نظر گرفتن یک عدد بزرگ برای حلقه repeat تعداد دایره های مارپیچ بیشتر می شود؟ بلاک دستورات repeat با دستور pen down شروع می شود. دستور pen down شخصیت مداد را به صحنه نمایش می چسباند مثل وقتی که شما می خواهید نقاشی بکشید و نوک مداد رنگی خود را روی کاغذ قرار می دهید. دستور change pen color مقدار کد رنگ را به میزان 5 واحد تغییر می دهد. سپس فاصله محل فعلی نوک مداد که روی صحنه نمایش قرار گرفته شده است تا نقطه ای که باید به آن منتقل شود 0.1 در نظر گرفته می شود. حال نوبت به اجرای دستور move می رسد. دستور Move نوک مداد را از نقطه فعلی به نقطه ای که فاصله آن توسط distance تعیین شده است، حرکت می دهد. سپس دستور turn میزان 12 درجه شخصیت مداد را می چرخاند. از آن جایی که شخصیت مداد در ابتدای اجرای دستورات مخفی شده است و دیده نمی شود شاید تصور کنید که هیچ چرخشی در آن اتفاق نمی افتد اما اگر به صفحه نمایش جزئیات مداد که با یک حرف i در بالای تصویر مداد مشخص شده است بروید خواهید دید که این طور نیست و مداد در هر ثانیه به دور خود می چرخد. دستور turn 12 degrees آخرین دستور بلاکrepeat می باشد. حال در نظر بگیرید که مجموعه دستورات داخل repeat که کشیدن مارپیچ ها را بر عهده دارند تعداد بیشتر از 100 بار اجرا شود. چه اتفاقی می افتد؟!!! تعداد دایره های مارپیچ بیشتر می شوند می توانید این مورد را تمرین کنید تا کاملا آن را یاد گیرید. برای شروع کار با اسکرچ می توانید مقاله
دانلود اسکرچ و آموزش نصب اسکرچ را مطالعه نمایید.در صورت تمایل شما می توانید پروژه های خود را که با اسکرچ ساخته اید از طریق ایمیل scratch@market021.com برای ما ارسال کنید تا ما پروژه شما را پس از بررسی های لازم در سایت مارکت 021 قرار دهیم تا کاربران دیگر که در حال یادگیری زبان برنامه نویسی اسکرچ هستند از پروژه شما استفاده کنند.