You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ur/6-space-game/1-introduction/assignment.md

7.5 KiB

گیم کا خاکہ: ڈیزائن پیٹرنز کا اطلاق کریں

اسائنمنٹ کا جائزہ

اپنے نئے سیکھے ہوئے ڈیزائن پیٹرنز کو استعمال کرتے ہوئے ایک سادہ گیم پروٹوٹائپ بنائیں! یہ اسائنمنٹ آپ کو آرکیٹیکچرل پیٹرنز (وراثت یا کمپوزیشن) اور پب/سب کمیونیکیشن سسٹم کی مشق کرنے میں مدد دے گی جو آپ نے سبق میں سیکھا ہے۔

ہدایات

ایک سادہ گیم کی نمائندگی بنائیں جو اس سبق کے ڈیزائن پیٹرنز کو ظاہر کرے۔ آپ کی گیم کو فعال ہونا چاہیے لیکن پیچیدہ گرافکس کی ضرورت نہیں ہے بنیادی آرکیٹیکچر اور کمیونیکیشن پیٹرنز پر توجہ دیں۔

ضروریات

اپنا آرکیٹیکچر پیٹرن منتخب کریں:

  • آپشن اے: کلاس پر مبنی وراثت کا استعمال کریں (جیسے GameObjectMovableHero کی مثال)
  • آپشن بی: کمپوزیشن کا استعمال کریں (جیسے فیکٹری فنکشن اپروچ کے ساتھ مکسڈ بیہیویرز)

کمیونیکیشن نافذ کریں:

  • شامل کریں ایک EventEmitter کلاس پب/سب میسجنگ کے لیے
  • کم از کم 2-3 مختلف میسج ٹائپس سیٹ اپ کریں (جیسے PLAYER_MOVE, ENEMY_SPAWN, SCORE_UPDATE)
  • یوزر ان پٹ (کی بورڈ/ماؤس) کو گیم ایونٹس کے ساتھ ایونٹ سسٹم کے ذریعے جوڑیں

گیم عناصر شامل کریں:

  • کم از کم ایک پلیئر کنٹرولڈ کردار
  • کم از کم ایک اور گیم آبجیکٹ (دشمن، جمع کرنے والا، یا ماحولیاتی عنصر)
  • آبجیکٹس کے درمیان بنیادی تعامل (ٹکراؤ، جمع کرنا، یا کمیونیکیشن)

تجویز کردہ گیم آئیڈیاز

سادہ گیمز پر غور کریں:

  • سانپ گیم سانپ کے حصے سر کی پیروی کرتے ہیں، کھانے کا تصادفی طور پر ظاہر ہونا
  • پونگ ویریئیشن پیڈل ان پٹ پر ردعمل دیتا ہے، گیند دیواروں سے ٹکرا کر واپس آتی ہے
  • کلیکٹر گیم پلیئر اشیاء جمع کرنے کے لیے حرکت کرتا ہے جبکہ رکاوٹوں سے بچتا ہے
  • ٹاور ڈیفنس بیسکس ٹاورز حرکت کرتے دشمنوں کو پہچانتے ہیں اور ان پر گولی چلاتے ہیں

کوڈ اسٹرکچر کے رہنما اصول

// Example starting structure
const Messages = {
  // Define your game messages here
};

class EventEmitter {
  // Your event system implementation
}

// Choose either class-based OR composition approach
// Class-based example:
class GameObject { /* base properties */ }
class Player extends GameObject { /* player-specific behavior */ }

// OR Composition example:
const gameObject = { /* base properties */ };
const movable = { /* movement behavior */ };
function createPlayer() { /* combine behaviors */ }

اپنی عملدرآمد کی جانچ کریں

یقینی بنائیں کہ آپ کا کوڈ کام کرتا ہے:

  • جانچ کریں کہ جب ایونٹس ٹرگر ہوں تو آبجیکٹس حرکت کرتے ہیں یا تبدیل ہوتے ہیں
  • تصدیق کریں کہ متعدد آبجیکٹس ایک ہی ایونٹ پر ردعمل دے سکتے ہیں
  • چیک کریں کہ آپ نئے بیہیویرز کو موجودہ کوڈ میں ترمیم کیے بغیر شامل کر سکتے ہیں
  • یقینی بنائیں کہ کی بورڈ/ماؤس ان پٹ گیم ایونٹس کو صحیح طریقے سے ٹرگر کرتا ہے

جمع کرانے کے رہنما اصول

آپ کی جمع کرائی گئی فائل میں شامل ہونا چاہیے:

  1. جاوا اسکرپٹ فائل(ز) آپ کی گیم کی عملدرآمد کے ساتھ
  2. ایچ ٹی ایم ایل فائل گیم کو چلانے اور جانچنے کے لیے (سادہ ہو سکتی ہے)
  3. تبصرے جو بتاتے ہیں کہ آپ نے کون سا پیٹرن منتخب کیا اور کیوں
  4. مختصر دستاویزات آپ کے میسج ٹائپس اور ان کے کام کے بارے میں

روبریک

معیار بہترین (3 پوائنٹس) مناسب (2 پوائنٹس) بہتری کی ضرورت (1 پوائنٹ)
آرکیٹیکچر پیٹرن وراثت یا کمپوزیشن کو صحیح طریقے سے نافذ کرتا ہے، واضح کلاس/آبجیکٹ ہائیرارکی کے ساتھ منتخب کردہ پیٹرن کو معمولی مسائل یا تضادات کے ساتھ استعمال کرتا ہے پیٹرن کو استعمال کرنے کی کوشش کرتا ہے لیکن عملدرآمد میں اہم مسائل ہیں
پب/سب عملدرآمد EventEmitter کئی میسج ٹائپس اور مناسب ایونٹ فلو کے ساتھ صحیح طریقے سے کام کرتا ہے بنیادی پب/سب سسٹم کچھ ایونٹ ہینڈلنگ کے ساتھ کام کرتا ہے ایونٹ سسٹم موجود ہے لیکن قابل اعتماد طریقے سے کام نہیں کرتا
گیم کی فعالیت تین یا زیادہ انٹرایکٹو عناصر جو ایونٹس کے ذریعے کمیونیکیشن کرتے ہیں دو انٹرایکٹو عناصر بنیادی ایونٹ کمیونیکیشن کے ساتھ ایک عنصر ایونٹس پر ردعمل دیتا ہے یا بنیادی تعامل
کوڈ کا معیار صاف، اچھی طرح سے تبصرہ شدہ کوڈ، منطقی تنظیم اور جدید جاوا اسکرپٹ کے ساتھ عام طور پر اچھی طرح سے منظم کوڈ، مناسب تبصرے کے ساتھ کوڈ کام کرتا ہے لیکن تنظیم یا واضح تبصرے کی کمی ہے

اضافی پوائنٹس:

  • تخلیقی گیم میکینکس جو پیٹرنز کے دلچسپ استعمال کو ظاہر کرتے ہیں
  • متعدد ان پٹ طریقے (کی بورڈ اور ماؤس ایونٹس)
  • قابل توسیع آرکیٹیکچر جو نئی خصوصیات کے ساتھ آسانی سے بڑھایا جا سکتا ہے

ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔