بازی پرندگان عصبانی از نگاهی دیگر! + بررسي فيزيكي و رياضي بازي

  • 1390/3/11
  • محمدرضا ارجمندی
  • 13



اشاره-آلین رت(Allain Rhett) دانشیار فیزیک در دانشگاه لوییزیانا جنوب شرقی است. او عاشق تدریس و صحبت کردن در مورد علم فیزیک است. گاهی اوقات، او قطعاتی را از هم جدا می کند ولی نمی تواند آنها را دوباره به حالت اول برگرداند! در شبکه توئیتر می توانید آلین رت را پیدا کنید ( @rjallain)

 

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

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

حال که بازی نسخه جدید را روی یک کامپیوتر دارم بازی می کنم، می توانم از صفحه نمایش با استفاده از نرم افزار مخصوص اسکرین شات بگیرم. پس از امتحان کردن دو برنامه ویدئو کپچر Quicktime و Snap Pro X  به این نتیجه رسیدم که نتایج دلخواهم را با این برنامه ها به دست نخواهم آورد. اول از همه اینکه Quicktime  تنها از کل صفحه نمایش  اسکرین شات می گرفت و نرخ فریم بر ثانیه مورد غفلت واقع می شد. Snap Pro X  نیز چندان در زمینه فریم بر ثانیه موفق عمل نمی کرد و کپچر ویدئویی مطلوبی بدست نمی آمد.. در نهایت سایت screencast-o-matic.com را پیدا کردم حاوی ابزار رایگان مبتنی بر جاوا برای اسکرین شات گرفتن. به نظر می رسید این ابزار کار  را بسیار بهتر انجام می دهد. همچنین ، یک دوربین فیلمبرداری زوم شده  روی صفحه نمایش کامپیوتر برای منظور من بهتر از فیلم برداری از روی صفحه آی پاد بود.

اما چه می توان با این ابزارهای جدید انجام داد؟ اجازه دهید کمی عقب تر رفته و به سوالی که همیشه در هنگام این بازی در ذهن داشته ام پاسخ دهم

سوال: آیا سرعت پرتاب پرنده بستگی به زاویه پرتاب دارد؟

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

اجازه دهید فرض کنیم سختی فنر از نوع ثابت و برابر مقدار k بوده و جرم پرتابه که در اینجا یک پرنده قرمز بامزه است را m در نظر میگیریم.  حال فکر می کنید چگونه می توان میزان سرعت اولیه پرتابه را درست زمانی که از کمان رها می شود بدست آورد؟ بله ، استفاده از اصل پایستاری «کار و انرژی». چرا؟ به این خاطر که مکان شروع و پایان حرکت را می دانم، اما زمان رسیدن به پایان نامشخص است. از آنجا که اصل کار و انرژی مستقل از زمان است، یک روش مناسب برای بدست آوردن سرعت است.

من « زمین + پرنده + تیرکمان» را به عنوان سیستم خود انتخاب کرده و موقعیت شروع را برابر صفر  (y1 = 0) و پایان یا لحظه خروج از کمان را   y2 = s درنظر می گیرم. از آنجا که من زمین و تیرکمان هر دو را درون سیستم گنجانده ام، می توانم هر دو انرژی پتانسیل گرانشی و انرژی پتانسیل ناشی از فنر را به صورت معلوم محاسبه کنم. آه ، بگذارید به این نکته نیز اشاره کنم که پرنده از حالت استراحت کارش را شروع می کند و هیچ کار انجام شده بر روی سیستم وجود ندارد. اصل کار انرژی می گوید:

شاید برخی از شما دوستان فراموش کرده باشید، اما انرژی پتانسیل فنر از فرمول 0.5ks2 و انرژی پتانسیل گرانشی از فرمول mgy محاسبه می شود. حال، می توانم سرعت نهایی را از فرمول بالا و با معلوم بودن بقیه مقادیر محاسبه کنم:

فرمول بالا برای پرتاب عمودی بود. اما اگر من پرنده را با زاویه شلیک کنم چه؟ چه چیز تغییر خواهد کرد؟ در واقع، تنها ارتفاع نقطه شروع و پایان دستخوش تغییر می گردد. در زیر یک نمودار در حالت پرتاب زاویه دار رسم نموده ام:

اجازه بدهید یک بار دیگر  محل شروع را y1 = 0 متر فرض کنیم. حال موقعیت نقطه y2 عبارت است از:

با استفاده از روشی مشابه مانند قبل،  سرعت نهایی می شود:

حداکثر سرعت زمانی بدست می آید که پرتاب به صورت افقی انجام شود تا سینوس تتا صفر شود.(خوب ، از نظر علمی پرنده سریعترین حرکت را  وقتی دارد که  به طور مستقیم و موازی با افق شلیک شود) و کمترین سرعت را در هنگام پرتاب رو به بالا و عمودی.

داده های واقعی

در زیر اولین اسکرین شات گرفته شده با استفاده از ابزار  screencast-o-matic.comرا ملاحظه می کنید:

به نظر می رسد شتاب به درستی اندازه گیری شده است (در حدود 8/9- متر بر مجذور ثانیه)  با این حال ، من خیلی از نتیجه راضی نبودم. اگر شما کمی دقیق تر به تصویر نگاه کنید خواهید فهمید که برخی از مقادیر y یا موقعیت در زمان های مختلف با هم مشابه اند. دلیل این تناقض این است که ویدئویی که دیتا از آن استخرج شده دچار تلاطم و پرش صحنه بوده است. هنگامی که شما فقط آن را تماشا می کنید، به نظر خوب می رسد. با این حال، برای تحلیل علمی خوب نیست. خوب، به هر حال می خواهم از این داده ها استفاده کنم.

برای پیدا کردن سرعت شلیک پرنده به چه چیز دیگری نیاز است؟  خب، در جهت y، من می توانم محاسبه کنم پرنده تا چه ارتفاعی بالا می رود. با استفاده دوباره از قضیه کار و انرژی، داریم:

این فرمول فقط به من سرعت اولیه در راستای y را می دهد. برای این شلیک خاص ، پرنده از موقعیت 355/4 متر شلیک شد و تا ارتفاع 943/25 متری بالا رفت. در این صورت سرعت اولیه در راستای y عبارت است از 58/20 متر بر ثانیه.

حال، برای جهت ایکس. نمودار زیر بیان کننده موقعیت لحظه ای پرنده در راستای محور ایکس است.

شیب این خط سرعت پرنده در راستای محور ایکس را نشان می دهد که 6.5 متر در ثانیه است. این بدان معنی است که اندازه سرعت پرتاب برای این زاویه عبارت است از:

و زاویه پرتاب چه قدر است؟ هم می توان این مجهول را از تماشای مجدد ویدیو و زاویه کشش تیرکمان حدس زد و هم به روش فرمولی و با استفاده از مولفه های سرعت اولیه بدست آورد به ترتیب زیر:

با توجه به قوانین مثلثات زاویه تتا عبارت است از:

با استفاده از مقادیر بدست آمده برای مولفه های سرعت ایکس و وای، و استفاده از رابطه فوق، زاویه پرتاب 72.4 درجه محاسبه می گردد. در روش دیگر می توان از  ابزار پیش فرض Tracker در زاویه سنج استفاده کرد که زاویه را 8/71 نشان می دهد.

هر دو روش تقریبا یک مقدار را نشان می دهند. (8/71 در مقابل 4/72)

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

بنابراین، من 8 پرتاب انجام دادم ( در4 مورد از کپچر کردن صفحه نمایش یا همان اسکرین شات گرفتن و در 4 مورد با استفاده از دوربین فیلمبرداری). راه حل سوال بالا کاملا سر راست است: اگر بازی پرندگان عصبانی زاویه پرتاب را به حساب بیاورد و در واقع زاویه پرتاب پرنده یک پارامتر تاثیر گذار در موفقیت پرتاب ها باشد آنگاه باید نمودار سرعت v2 در مقابل زاویه پرتاب (θ) یک خط راست باشد. در واقع، اگر مقدار ثابت گرانش یا g را بدانیم (که می دانیم) و مسافت به عقب کشیدن تیر و کمان یا  s  را هم بدانیم (که 2.2 متر اندازه گیری شد) ، پس می توانیم نموداری رسم کنیم که یک محور آن  مربع سرعت و دیگری -2*g*s*sin(θ)  است.و شیب نمودار باید 1 باشد. همچنین عرض از مبدا باید یک مقدار ثابت k*s2/m باشد. بگذارید یک بار دیگر  معادلات را بنویسم که فهمش برایتان راحت تر باشد:

و این هم از نمودار موردنظر:

خوب، به نظر می رسد که نمودار از نوع خطی است. با این حال، رگرسیون خطی برای این داده ها از شیب 5.34 و عرض از مبدا 645  برخوردار است. بنابراین، معنی این حرف چیست؟ خب، با نگاهی مجدد به داده ها متوجه می شویم، بیشتر مقادیر سرعت نهایی دور و بر 21.8 متر در ثانیه است. تنها موردی که از این محدوده فاصله دارد شلیکی بوده که با یک زاویه بسیار کم (4 درجه بالاتر از خط افق) انجام شده. این شلیک سرعتی در حدود 26 متر  بر ثانیه داشته. حال، همه چیز روشن می شود: وقتی شما شلیک را با یک زاویه کم انجام می دهید همانند این است که تعداد داده های بدست آمده در نمودار کم است و پرنده به زودی به زمین یا مانع اصابت می کند. دلیلش این است که پرنده برای مدت زمان طولانی در هوا نیست. همچنین، این پرتاب با نرم افزار فیلم برداری ضبط شده بود، بنابراین تعداد نقاط داده زیادی موجود نیست. این هم از نمودار در راستای ایکس این چنین شلیک هایی

پرتاب های غیر واقعی در پرندگان عصبانی

بله! من می خواهم تیرو کمان پرتاب پرنده را این طور نامگذاری کنم. وسیله پرتاب در پرندگان عصبانی به زاویه پرتاب بستگی ندارد. اساسا، بازی پرنده را با سرعت حدود 22 متر بر ثانیه در هر زاویه ای که کاربر اراده کند شلیک می کند. این امر در ادامه بازی نیز صدق می کند. اگر بازی از  مکانیزم پرتابی همانند نمونه اش در دنیای واقعی و با همان قواعد فیزیکی استفاده می کرد، آنگاه پرندگان با جرم های مختلف نیز سرعت پرتاب های متفاوتی از یکدیگر داشتند (با فرض اینکه همان کش با همان ضریب ارتجاعی استفاده شود). اگر شما پرنده بمبی و پرنده قرمز را با یک زاویه شلیک کنید، آنها تقریبا در یک محل فرود می آیند. این نشان می دهد که یا هر دوی آنها جرم مشابهی دارند یا با سرعت اولیه  مشابه پرتاب شده اند.

نکته نهایی در مورد پرندگان عصبانی

شما ممکن است فکر کنید از بیکاری و به دلیل نداشتن کار و زندگی به تجزیه و تحلیل ریاضی پرندگان عصبانی روی آورده ام! اگر چنین است، شما در اشتباهید. پرندگان عصبانی درست مانند یک دنیای جدید است.

یک جهان جدید!

محل خیره کننده ای که هرگز پیش از این آن را تجربه نکرده اید!

اما هنگامی که پای بدان می گذارید، آن را آشنا و صمیمی خواهید یافت!

این همان دنیایی است که من و شما مدتی است بد درگیرش شده ایم!

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

در همین زمینه و برای علاقمندان مطالعه مقالات زیر را پیشنهاد می کنم:

 

علم فیزیک در بازی پرندگان عصبانی

پرندگان عصبانی و آونگ ولنتاین (Valentines Pendulum)

آیا پرندگان عصبانی به جرم اهمیتی می دهد؟

بازی Green Angry Bird

نسخه Fruit Ninja از بازی Angry Birds

منبع:wired.com

 

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 13 دیدگاه
  1. اووووووووووووووووو طرف چی بیکار بوده!!!!

    از سال دیگه تو کتاب های فیزیک هم باید شاهد پرسش هایی در رابطه با پرندگان خشمگین باشیم: بارم 20 نمره

    1. اتفاقا به این میگن کاربرد قیزیک در زندگی روزمره
      طرف استاد فیزیک دانشگاه هست و وقتش رو میذاره روی تحلیل دینامیکی یک بازی و این درس خوبی هست برای ما که ادعای علم و دانش داریم ولی نمی دونیم کجا باید از اموخته های خودمون استفاده کنیم

  2. سلام محمدرضا جان.

    مطلب فوق‌العاده‌ای بود. ممنونم از اینکه این مطلب عالی رو برامون انتخاب و با این کیفیت درجه ۱ ترجمه کردی.

    حقیقتا تفاوت ما آدمها در نوع نگرشمون به اطرافه. من برام این سؤال مطرح شده بود که چرا سرعت پرتابها یکی هستش و مثل دنیای واقعی نیست، اما هیچ وقت همت و جسارت اینکه برم دنبالش و از لحاظ علمی این مورد رو پیگیری کنم نداشته‌ام.

    اینجا دقیقا تفاوت بین من و این آقای آلین رت، مشخص می‌شه، تفاوت یه آدم معمولی و یه دانشمند.

    این مطلب رو در گودر شیر می‌کنم.

    مرسی ازت

    1. محسن جان ممنون از لطفت کاری نکردم
      ولی شما اگه به این مباحث علاقه داری می تونی روی لینک های آخر مقاله کلیک کنی که هر کدوم یه مقاله در همین رابطه نوشته آلین رت هست
      کلا آدم باحالی هست این آلین

  3. این بازی از یک موتور فیزیک استفاده میکنه که box2d نام داره و در ابتدا برای زبان برنامه نویسی c , c++ نوشته شده و بعدا برای Objective-c و actionscript 3 و خیلی زبان دیگه به اصطلاح پورت شده در واقع استفاده از این کتابخانه به قدری راحته که شما آبجکت رو بهش معرفی میکنید و بعد میگید مثلا این 10 کیلو وزن داره ، جاذبه 1.3 و …. حتی شبیه سازی قوانین در آب و … رو هم داره

  4. یه سایت جالب برای درآمد فقط با خوندن اس ام اس. اگه با روش کارش آشنا بشید حتما عاشقش می شید. این هم لینکش: http://2oo.ir/link

  5. واقعا جالب بود دیدگاه متفاوت همیشه باعث جلب توجه میشه.امیدوارم همیشه از این تفکرات تو سایت استفاده بشه

  6. سلام
    جالب بود کاش برنامه ای هم معرفی میشد که ای کار رو بصورت ساده انجام بده
    ممنون

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *