Podcast
Questions and Answers
چرا نویسنده کتاب، کل محتوای آن را به صورت رایگان در وب قرار داده است؟
چرا نویسنده کتاب، کل محتوای آن را به صورت رایگان در وب قرار داده است؟
- به این دلیل که او یک دانشجوی فقیر است و به دنبال کسب درآمد نیست.
- به این دلیل که نسخههای دیجیتال کتاب DRM دارند و دسترسی به آنها محدود است.
- به این دلیل که او میخواهد تا حد امکان افراد بتوانند به کتاب دسترسی داشته باشند. (correct)
- به این دلیل که او میخواهد قبل از خرید نسخه چاپی، مردم با محتوای کتاب آشنا شوند.
اگر کاربری نسخه دیجیتال کتاب را خریداری کند، چه محدودیتی در استفاده از آن دارد؟
اگر کاربری نسخه دیجیتال کتاب را خریداری کند، چه محدودیتی در استفاده از آن دارد؟
- کاربر فقط میتواند کتاب را در یک دستگاه بخواند.
- هیچ محدودیتی برای کاربر وجود ندارد. (correct)
- کاربر فقط میتواند کتاب را برای مدت زمان مشخصی استفاده کند.
- کاربر نمیتواند کتاب را به دستگاههای دیگر منتقل کند.
چرا نسخه چاپی کتاب در amazon.ca موجود نیست؟
چرا نسخه چاپی کتاب در amazon.ca موجود نیست؟
- به دلیل اینکه CreateSpace مستقیماً به کانادا ارسال نمیکند. (correct)
- به دلیل مسائل مربوط به حقوق چاپ و نشر
- به دلیل اینکه نویسنده، کانادایی نیست.
- به دلیل عدم تقاضا برای نسخه چاپی در کانادا.
نویسنده کتاب چه کسی است و کجا کار میکرد؟
نویسنده کتاب چه کسی است و کجا کار میکرد؟
هدف باب نیستروم از نوشتن کتاب چه بود؟
هدف باب نیستروم از نوشتن کتاب چه بود؟
چگونه میتوان با نویسنده کتاب در تماس بود؟
چگونه میتوان با نویسنده کتاب در تماس بود؟
چرا نویسنده از مخاطبان میخواهد که در صورت یافتن اشتباهات یا داشتن پیشنهاد با او تماس بگیرند؟
چرا نویسنده از مخاطبان میخواهد که در صورت یافتن اشتباهات یا داشتن پیشنهاد با او تماس بگیرند؟
اگر بخواهیم از به روز رسانی های کتاب مطلع شویم، چه راهی پیشنهاد شده است؟
اگر بخواهیم از به روز رسانی های کتاب مطلع شویم، چه راهی پیشنهاد شده است؟
notify()
Subject
protected
notify()
Subject
protected
Observer
Event
Observer
Event
Subject
Physics
falling event
notify()
Subject
Physics
falling event
notify()
Observer
(observers)
Observer
(observers)
Subject
Observer
Subject
notify()
Subject
Observer
Subject
notify()
Subject
Observers
protected
Subject
Observers
protected
چه چیزی سبب میشود که درختان جنگل بیشتر شبیه به هم باشند؟
چه چیزی سبب میشود که درختان جنگل بیشتر شبیه به هم باشند؟
چرا پردازش تمام اطلاعات درختان جنگل در هر فریم ممکن است ناممکن باشد؟
چرا پردازش تمام اطلاعات درختان جنگل در هر فریم ممکن است ناممکن باشد؟
کدام گزینه به خوبی نشان میدهد که تمامی درختان یک جنگل شبیه به هم هستند؟
کدام گزینه به خوبی نشان میدهد که تمامی درختان یک جنگل شبیه به هم هستند؟
کدامیک از متدهای نوشته شده برای مدلسازی جنگل صحیح است؟
کدامیک از متدهای نوشته شده برای مدلسازی جنگل صحیح است؟
کدام یک از موارد زیر به عنوان خصوصیاتی از یک شیء درخت در کلاس Tree تعریف شده است؟
کدام یک از موارد زیر به عنوان خصوصیاتی از یک شیء درخت در کلاس Tree تعریف شده است؟
اصطلاح Flyweight در چه زمینهای در توصیف جنگلها استفاده میشود؟
اصطلاح Flyweight در چه زمینهای در توصیف جنگلها استفاده میشود؟
چرا درختان باید به گونهای مدلسازی شوند که خصوصیات مشترک آنها تجزیه و تحلیل شود؟
چرا درختان باید به گونهای مدلسازی شوند که خصوصیات مشترک آنها تجزیه و تحلیل شود؟
ویژگیهای مشترک درختان شامل چه عناصری است؟
ویژگیهای مشترک درختان شامل چه عناصری است؟
چرا نویسنده کتاب 'Design Patterns: Elements of Reusable Object-Oriented Software' را بسیار مورد توجه قرار داد؟
چرا نویسنده کتاب 'Design Patterns: Elements of Reusable Object-Oriented Software' را بسیار مورد توجه قرار داد؟
چه عاملی باعث شد که نویسنده اعتقاد داشته باشد برنامهنویسان به خوبی طراحی نرمافزار را رعایت نکردهاند؟
چه عاملی باعث شد که نویسنده اعتقاد داشته باشد برنامهنویسان به خوبی طراحی نرمافزار را رعایت نکردهاند؟
نویسنده توسط چه رویدادی فرصتی برای شروع کار در Electronic Arts پیدا کرد؟
نویسنده توسط چه رویدادی فرصتی برای شروع کار در Electronic Arts پیدا کرد؟
کدام یک از موارد زیر بهدرستی شیوه تعامل بین سیستمهای مختلف در بازیها را توصیف میکند؟
کدام یک از موارد زیر بهدرستی شیوه تعامل بین سیستمهای مختلف در بازیها را توصیف میکند؟
نویسنده چه چیزی را درباره کدهای نوشته شده توسط دیگر برنامهنویسان تجربه کرد؟
نویسنده چه چیزی را درباره کدهای نوشته شده توسط دیگر برنامهنویسان تجربه کرد؟
کدام یک از موارد زیر واقعیت برنامهنویسی در دنیای واقعی را به خوبی نشان میدهد؟
کدام یک از موارد زیر واقعیت برنامهنویسی در دنیای واقعی را به خوبی نشان میدهد؟
نویسنده در میان یادگیری برنامهنویسی چه چالشی را در ابتدا تجربه کرد؟
نویسنده در میان یادگیری برنامهنویسی چه چالشی را در ابتدا تجربه کرد؟
کدام روش برای حذف یک ناظر در یک لیست پیوندی دو طرفه در زمان ثابت استفاده میشود؟
کدام روش برای حذف یک ناظر در یک لیست پیوندی دو طرفه در زمان ثابت استفاده میشود؟
چرا نویسنده احساس نارضایتی کرد وقتی به کدهای بازیهای بزرگ نگاهی انداخت؟
چرا نویسنده احساس نارضایتی کرد وقتی به کدهای بازیهای بزرگ نگاهی انداخت؟
چرا در استفاده از لیست پیوندی تک طرفه برای حذف یک ناظر باید لیست را طی کرد؟
چرا در استفاده از لیست پیوندی تک طرفه برای حذف یک ناظر باید لیست را طی کرد؟
چه چیز باعث میشود که ناظر تنها بتواند بخشی از یک لیست ناظر باشد؟
چه چیز باعث میشود که ناظر تنها بتواند بخشی از یک لیست ناظر باشد؟
چگونه میتوان به صورت بهینه هر ناظر را در یک لیست پیوندی مطلع کرد؟
چگونه میتوان به صورت بهینه هر ناظر را در یک لیست پیوندی مطلع کرد؟
کدام یک از ویژگیها در استفاده از لیست پیوندی دو طرفه به دست میآید؟
کدام یک از ویژگیها در استفاده از لیست پیوندی دو طرفه به دست میآید؟
کدام یک از نقاط ضعف استفاده از ناظر به عنوان گره لیست در سیستم به شمار میآید؟
کدام یک از نقاط ضعف استفاده از ناظر به عنوان گره لیست در سیستم به شمار میآید؟
کدام یک از گزینهها نمایانگر رویکردی برای بهبود نظر ناظرها در زمان اطلاعرسانی است؟
کدام یک از گزینهها نمایانگر رویکردی برای بهبود نظر ناظرها در زمان اطلاعرسانی است؟
انعطافپذیری چه نوع لیست پیوندی در ثبت و لغو ثبت ناظرها به کار میرود؟
انعطافپذیری چه نوع لیست پیوندی در ثبت و لغو ثبت ناظرها به کار میرود؟
در کد بالا، چرا از یک آرایه دو بعدی (nested array) برای ذخیره سازی نقشه جهان استفاده شده است؟
در کد بالا، چرا از یک آرایه دو بعدی (nested array) برای ذخیره سازی نقشه جهان استفاده شده است؟
در کد بالا، World::getMovementCost
چه کاری انجام می دهد؟
در کد بالا، World::getMovementCost
چه کاری انجام می دهد؟
کدام عبارت در مورد روش World::isWater
در کد بالا صحیح است؟
کدام عبارت در مورد روش World::isWater
در کد بالا صحیح است؟
در کد بالا، چرا از ساختار class Terrain
استفاده شده است؟
در کد بالا، چرا از ساختار class Terrain
استفاده شده است؟
کلاس Terrain
در کد بالا از کدام اصطلاح طراحی شیءگرا استفاده می کند؟
کلاس Terrain
در کد بالا از کدام اصطلاح طراحی شیءگرا استفاده می کند؟
چرا روشهای کلاس Terrain
به طور const
تعریف شدهاند؟
چرا روشهای کلاس Terrain
به طور const
تعریف شدهاند؟
در کد بالا، "flyweight" به چه معنی است؟
در کد بالا، "flyweight" به چه معنی است؟
کدام مورد از مزایای استفاده از class Terrain
در کد است؟
کدام مورد از مزایای استفاده از class Terrain
در کد است؟
Flashcards
هدف کتاب
هدف کتاب
این کتاب با هدف به اشتراک گذاری بهترین شیوه های برنامه نویسی در بازی و کمک به برنامه نویسان برای نوشتن کد با کیفیت بالا و قابل فهم ایجاد شده است.
موضوع اصلی کتاب
موضوع اصلی کتاب
ایده اصلی این کتاب استفاده از الگوهای متداول طراحی در دنیای بازی ها برای بهبود ساختار، عملکرد و خوانایی کد است.
نویسنده کتاب
نویسنده کتاب
نویسنده این کتاب، باب نیستروم، طی هشت سال تجربه در EA، از بهترین و بدترین کدها درس گرفته و این تجربه را در کتاب خود با شما به اشتراک می گذارد.
بروزرسانی کتاب
بروزرسانی کتاب
Signup and view all the flashcards
تاثیر کتاب
تاثیر کتاب
Signup and view all the flashcards
تخصص نویسنده
تخصص نویسنده
Signup and view all the flashcards
محتوای کتاب
محتوای کتاب
Signup and view all the flashcards
محتوای بروز شده
محتوای بروز شده
Signup and view all the flashcards
ناظران مستقل
ناظران مستقل
Signup and view all the flashcards
سیستم ناظر
سیستم ناظر
Signup and view all the flashcards
سیستم رویداد
سیستم رویداد
Signup and view all the flashcards
حفاظت از Notify()
حفاظت از Notify()
Signup and view all the flashcards
الگوی ناظر
الگوی ناظر
Signup and view all the flashcards
Observer به عنوان Subject
Observer به عنوان Subject
Signup and view all the flashcards
اتصال مستقل Observer
اتصال مستقل Observer
Signup and view all the flashcards
حذف مستقل Observer
حذف مستقل Observer
Signup and view all the flashcards
استفاده از ناظر به عنوان گره در لیست پیوندی
استفاده از ناظر به عنوان گره در لیست پیوندی
Signup and view all the flashcards
پیاده سازی ناظر با لیست پیوندی ساده
پیاده سازی ناظر با لیست پیوندی ساده
Signup and view all the flashcards
لیست پیوندی دوطرفه
لیست پیوندی دوطرفه
Signup and view all the flashcards
استفاده از استخر گره برای حل مشکل ناظران
استفاده از استخر گره برای حل مشکل ناظران
Signup and view all the flashcards
گره لیست برای ناظران
گره لیست برای ناظران
Signup and view all the flashcards
پیاده سازی ناظر با لیست پیوندی ساده
پیاده سازی ناظر با لیست پیوندی ساده
Signup and view all the flashcards
ناظر
ناظر
Signup and view all the flashcards
Flyweight
Flyweight
Signup and view all the flashcards
Mesh
Mesh
Signup and view all the flashcards
Texture
Texture
Signup and view all the flashcards
Instance
Instance
Signup and view all the flashcards
Flyweight در گرافیک بازی
Flyweight در گرافیک بازی
Signup and view all the flashcards
GPU
GPU
Signup and view all the flashcards
CPU
CPU
Signup and view all the flashcards
Data Transfer
Data Transfer
Signup and view all the flashcards
ساختار داده دوبعدی
ساختار داده دوبعدی
Signup and view all the flashcards
کلاس World
کلاس World
Signup and view all the flashcards
Terrain
Terrain
Signup and view all the flashcards
getMovementCost
getMovementCost
Signup and view all the flashcards
isWater
isWater
Signup and view all the flashcards
object
object
Signup and view all the flashcards
طراحی الگو چیست؟
طراحی الگو چیست؟
Signup and view all the flashcards
الگوی Singleton چیست؟
الگوی Singleton چیست؟
Signup and view all the flashcards
اتصال بیش از حد (Coupling) چیست؟
اتصال بیش از حد (Coupling) چیست؟
Signup and view all the flashcards
اضافه کردن ویژگی (Bolting on) چیست؟
اضافه کردن ویژگی (Bolting on) چیست؟
Signup and view all the flashcards
توجه بیش از حد به ویژگیها (Feature Focus) چیست؟
توجه بیش از حد به ویژگیها (Feature Focus) چیست؟
Signup and view all the flashcards
مهلتهای فشرده (Intense Deadlines) چیست؟
مهلتهای فشرده (Intense Deadlines) چیست؟
Signup and view all the flashcards
بهینه سازی (Optimization) چیست؟
بهینه سازی (Optimization) چیست؟
Signup and view all the flashcards
معماری نرم افزار (Software Architecture) چیست؟
معماری نرم افزار (Software Architecture) چیست؟
Signup and view all the flashcards
Study Notes
نویسنده و هدف کتاب
- نویسنده کتاب، باب نیستروم، است و در ایالت الکترونیک آرتز کار می کرده است.
- هدف کتاب، آموزش الگوهای برنامه نویسی بازی به ویژه برای برنامه نویسان تازه کار است، با مثال هایی از کدهای خوب و بد.
- کتاب به صورت آنلاین و رایگان در دسترس است.
دسترسی به کتاب
- نسخه آنلاین کتاب به صورت رایگان در دسترس است و می توان از آن برای آشنایی با کتاب استفاده کرد.
- نسخه های دیجیتالی کتاب دارای DRM نیستند، که به معنای قابلیت انتقال به تمام دستگاه ها و قابلیت بایگانی است.
- نسخه چاپی از طریق آمازون آمریکا و بارنز اند نوبل قابل سفارش است (ارسال به کانادا مستقیم امکان پذیر نیست).
نظرات خوانندگان
- Ryan Leonski: سایت کتاب منبعی مفید برای برنامه نویسان بازی است.
- Mark Richards: کتاب به زیبایی نوشته شده است و نویسنده ستودنی است.
- Alistair Doulin: کتاب بهترین توصیه برای برنامه نویسان بازی جدید (و قدیمی) است.
مقدمه فصل
- در فصل اول، نویسنده از تجربیاتش در الکترونیک آرتز سخن می گوید و در نظر دارد از کدهای خوب الگوهای برنامه نویسی را ایجاد کند.
- کتاب الگوهای طراحی را مورد بررسی قرار میدهد.
الگوهای برنامه نویسی
-
Flyweight:
- برای مدیریت منابع گرافیکی در بازی (مدیریت درختان در جنگل) استفاده می شود.
- با وجود تعداد زیاد درختان یکسان، اطلاعات مشترک را به اشتراک می گذارد (شباهت در درختان)
- برای کاهش حجم دادههای گرافیکی و بهبود کارایی برنامه به کار میرود.
-
Observer:
- نوعی ارتباط بین اجزا در یک برنامه است که برای به اشتراک گذاشتن اطلاعات استفاده میشود.
- به اجزای مختلف اجازه میدهد تا به هر تغییری در قسمت دیگر به سرعت واکنش نشان دهند.
-
Observer در ارتباط با فیزیک:
- این الگو برای ارتباط بین سیستم فیزیک و سایر اجزای برنامه در بازی مورد استفاده قرار میگیرد.
- برای نظارت سیستم فیزیک و ارسال اطلاعیه به سایر اجزای برنامه استفاده میشود.
چگونگی پیادهسازی الگوهای برنامه نویسی
-
کلاس Flyweight: کلاس درخت دادهها با استفاده از دادههای مشترک برای به اشتراک گذاشتن مدل میشود.
-
در الگوی Observer، سوژه از طریق یک لیست پیوندی از ناظران را نگهداری میکند.
-
پیادهسازی Observer:
- سوژه لیستی از ناظران را حفظ میکند.
- ناظران میتوانند با سوژه ارتباط برقرار کنند و به اطلاعیهها پاسخ دهند.
- سوژه هنگام تغییرات، به تمام ناظران اطلاع میدهد.
- مدیریت دادههای متصل به طریق ناظرها برای کارایی برنامه است.
نکات مهم
- الگوی Flyweight برای به اشتراک گذاشتن دادههای مشابه در اجسام گوناگون به کار میرود.
- الگوی Observer برای ارتباط بین قسمتهای مختلف برنامه در بازیها استفاده میشود.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.