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/pa/6-space-game/1-introduction/assignment.md

10 KiB

ਖੇਡ ਦਾ ਮੌਕ-ਅੱਪ: ਡਿਜ਼ਾਈਨ ਪੈਟਰਨ ਲਾਗੂ ਕਰੋ

ਅਸਾਈਨਮੈਂਟ ਝਲਕ

ਡਿਜ਼ਾਈਨ ਪੈਟਰਨ ਦੀ ਆਪਣੀ ਨਵੀਂ ਸਿੱਖਿਆ ਨੂੰ ਵਰਤ ਕੇ ਇੱਕ ਸਧਾਰਨ ਖੇਡ ਪ੍ਰੋਟੋਟਾਈਪ ਬਣਾਓ! ਇਹ ਅਸਾਈਨਮੈਂਟ ਤੁਹਾਨੂੰ ਆਰਕੀਟੈਕਚਰਲ ਪੈਟਰਨ (ਵਿਰਾਸਤ ਜਾਂ ਰਚਨਾ) ਅਤੇ ਪਬ/ਸਬ ਸੰਚਾਰ ਪ੍ਰਣਾਲੀ ਦੀ ਅਭਿਆਸ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰੇਗਾ ਜੋ ਤੁਸੀਂ ਪਾਠ ਵਿੱਚ ਸਿੱਖਿਆ ਹੈ।

ਹਦਾਇਤਾਂ

ਇਸ ਪਾਠ ਦੇ ਡਿਜ਼ਾਈਨ ਪੈਟਰਨ ਨੂੰ ਦਰਸਾਉਣ ਵਾਲੀ ਇੱਕ ਸਧਾਰਨ ਖੇਡ ਦੀ ਨਮਾਇਸ਼ ਬਣਾਓ। ਤੁਹਾਡੀ ਖੇਡ ਕਾਰਗਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਪਰ ਇਸ ਵਿੱਚ ਜਟਿਲ ਗ੍ਰਾਫਿਕਸ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ \u2013 ਧਿਆਨ ਅਧਾਰਭੂਤ ਆਰਕੀਟੈਕਚਰ ਅਤੇ ਸੰਚਾਰ ਪੈਟਰਨ 'ਤੇ ਰੱਖੋ।

ਲੋੜਾਂ

ਆਪਣਾ ਆਰਕੀਟੈਕਚਰ ਪੈਟਰਨ ਚੁਣੋ:

  • ਵਿਕਲਪ A: ਕਲਾਸ-ਅਧਾਰਿਤ ਵਿਰਾਸਤ ਵਰਤੋ (ਜਿਵੇਂ GameObjectMovableHero ਉਦਾਹਰਨ)
  • ਵਿਕਲਪ B: ਰਚਨਾ ਵਰਤੋ (ਜਿਵੇਂ ਮਿਕਸਡ ਬਿਹੇਵਿਅਰ ਨਾਲ ਫੈਕਟਰੀ ਫੰਕਸ਼ਨ ਪਹੁੰਚ)

ਸੰਚਾਰ ਲਾਗੂ ਕਰੋ:

  • ਸ਼ਾਮਲ ਕਰੋ ਇੱਕ EventEmitter ਕਲਾਸ ਪਬ/ਸਬ ਸੁਨੇਹਾ ਪ੍ਰਣਾਲੀ ਲਈ
  • ਸੈਟ ਕਰੋ ਘੱਟੋ-ਘੱਟ 2-3 ਵੱਖਰੇ ਸੁਨੇਹਾ ਕਿਸਮਾਂ (ਜਿਵੇਂ PLAYER_MOVE, ENEMY_SPAWN, SCORE_UPDATE)
  • ਜੋੜੋ ਯੂਜ਼ਰ ਇਨਪੁਟ (ਕੀਬੋਰਡ/ਮਾਊਸ) ਨੂੰ ਖੇਡ ਘਟਨਾਵਾਂ ਨਾਲ ਸੰਚਾਰ ਪ੍ਰਣਾਲੀ ਰਾਹੀਂ

ਖੇਡ ਦੇ ਤੱਤ ਸ਼ਾਮਲ ਕਰੋ:

  • ਘੱਟੋ-ਘੱਟ ਇੱਕ ਖਿਡਾਰੀ-ਨਿਯੰਤਰਿਤ ਪਾਤਰ
  • ਘੱਟੋ-ਘੱਟ ਇੱਕ ਹੋਰ ਖੇਡ ਆਬਜੈਕਟ (ਦੁਸ਼ਮਣ, ਇਕੱਠਾ ਕਰਨ ਵਾਲਾ, ਜਾਂ ਵਾਤਾਵਰਣ ਤੱਤ)
  • ਆਬਜੈਕਟਾਂ ਦੇ ਵਿਚਕਾਰ ਬੁਨਿਆਦੀ ਅੰਤਰਕਿਰਿਆ (ਟਕਰਾਅ, ਇਕੱਠਾ ਕਰਨਾ, ਜਾਂ ਸੰਚਾਰ)

ਸੁਝਾਏ ਗਏ ਖੇਡ ਦੇ ਵਿਚਾਰ

ਸਧਾਰਨ ਖੇਡਾਂ ਜੋ ਵਿਚਾਰਨਯੋਗ ਹਨ:

  • ਸਨੈਕ ਖੇਡ \u2013 ਸਨੈਕ ਸੈਗਮੈਂਟ ਸਿਰ ਦੇ ਪਿੱਛੇ ਚਲਦੇ ਹਨ, ਭੋਜਨ ਬੇਤਰਤੀਬੀ ਨਾਲ ਉਪਜਦਾ ਹੈ
  • ਪੌਂਗ ਵੈਰੀਏਸ਼ਨ \u2013 ਪੈਡਲ ਇਨਪੁਟ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਗੇਂਦ ਕੰਧਾਂ ਤੋਂ ਟਕਰਾਉਂਦੀ ਹੈ
  • ਕਲੈਕਟਰ ਖੇਡ \u2013 ਖਿਡਾਰੀ ਆਸਪਾਸ ਚਲਦਾ ਹੈ ਚੀਜ਼ਾਂ ਇਕੱਠੀਆਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਕਿ ਰੁਕਾਵਟਾਂ ਤੋਂ ਬਚਦਾ ਹੈ
  • ਟਾਵਰ ਡਿਫੈਂਸ ਬੇਸਿਕਸ \u2013 ਟਾਵਰ ਚਲਦੇ ਦੁਸ਼ਮਣਾਂ ਨੂੰ ਪਛਾਣਦੇ ਹਨ ਅਤੇ ਉਨ੍ਹਾਂ 'ਤੇ ਗੋਲੀ ਚਲਾਉਂਦੇ ਹਨ

ਕੋਡ ਸਟ੍ਰਕਚਰ ਗਾਈਡਲਾਈਨ

// 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. HTML ਫਾਈਲ ਖੇਡ ਚਲਾਉਣ ਅਤੇ ਜਾਂਚ ਕਰਨ ਲਈ (ਸਧਾਰਨ ਹੋ ਸਕਦੀ ਹੈ)
  3. ਟਿੱਪਣੀਆਂ ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ ਕਿਹੜਾ ਪੈਟਰਨ ਚੁਣਿਆ ਅਤੇ ਕਿਉਂ
  4. ਛੋਟਾ ਦਸਤਾਵੇਜ਼ ਤੁਹਾਡੇ ਸੁਨੇਹਾ ਕਿਸਮਾਂ ਅਤੇ ਉਹ ਕੀ ਕਰਦੇ ਹਨ

ਰੂਬ੍ਰਿਕ

ਮਾਪਦੰਡ ਸ਼ਾਨਦਾਰ (3 ਅੰਕ) ਯੋਗ (2 ਅੰਕ) ਸੁਧਾਰ ਦੀ ਲੋੜ (1 ਅੰਕ)
ਆਰਕੀਟੈਕਚਰ ਪੈਟਰਨ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਵਿਰਾਸਤ ਜਾਂ ਰਚਨਾ ਲਾਗੂ ਕਰਦਾ ਹੈ ਸਾਫ ਕਲਾਸ/ਆਬਜੈਕਟ ਹਾਇਰਾਰਕੀ ਨਾਲ ਚੁਣੇ ਪੈਟਰਨ ਨੂੰ ਵਰਤਦਾ ਹੈ ਕੁਝ ਛੋਟੀਆਂ ਗਲਤੀਆਂ ਜਾਂ ਅਸੰਗਤੀਆਂ ਨਾਲ ਪੈਟਰਨ ਵਰਤਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਪਰ ਲਾਗੂ ਕਰਨ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਸਮੱਸਿਆਵਾਂ ਹਨ
ਪਬ/ਸਬ ਲਾਗੂ ਕਰਨਾ EventEmitter ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਕਈ ਸੁਨੇਹਾ ਕਿਸਮਾਂ ਅਤੇ ਸਹੀ ਘਟਨਾ ਪ੍ਰਵਾਹ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ ਬੁਨਿਆਦੀ ਪਬ/ਸਬ ਪ੍ਰਣਾਲੀ ਕੁਝ ਘਟਨਾ ਸੰਭਾਲਣ ਨਾਲ ਕੰਮ ਕਰਦੀ ਹੈ ਘਟਨਾ ਪ੍ਰਣਾਲੀ ਮੌਜੂਦ ਹੈ ਪਰ ਭਰੋਸੇਯੋਗ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਦੀ
ਖੇਡ ਦੀ ਕਾਰਗਰਤਾ ਤਿੰਨ ਜਾਂ ਵੱਧ ਇੰਟਰੈਕਟਿਵ ਤੱਤ ਜੋ ਘਟਨਾਵਾਂ ਰਾਹੀਂ ਸੰਚਾਰ ਕਰਦੇ ਹਨ ਦੋ ਇੰਟਰੈਕਟਿਵ ਤੱਤ ਬੁਨਿਆਦੀ ਘਟਨਾ ਸੰਚਾਰ ਨਾਲ ਇੱਕ ਤੱਤ ਘਟਨਾਵਾਂ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਜਾਂ ਬੁਨਿਆਦੀ ਅੰਤਰਕਿਰਿਆ
ਕੋਡ ਦੀ ਗੁਣਵੱਤਾ ਸਾਫ, ਚੰਗੀ ਤਰੀਕੇ ਨਾਲ ਟਿੱਪਣੀ ਕੀਤੀ ਗਈ ਕੋਡ ਲਾਜ਼ਮੀ ਸੰਗਠਨ ਅਤੇ ਆਧੁਨਿਕ ਜਾਵਾਸਕ੍ਰਿਪਟ ਨਾਲ ਆਮ ਤੌਰ 'ਤੇ ਚੰਗੀ ਤਰੀਕੇ ਨਾਲ ਸੰਗਠਿਤ ਕੋਡ ਯੋਗ ਟਿੱਪਣੀਆਂ ਨਾਲ ਕੋਡ ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਸੰਗਠਨ ਜਾਂ ਸਾਫ ਟਿੱਪਣੀਆਂ ਦੀ ਘਾਟ ਹੈ

ਬੋਨਸ ਅੰਕ:

  • ਰਚਨਾਤਮਕ ਖੇਡ ਮਕੈਨਿਕਸ ਜੋ ਪੈਟਰਨ ਦੇ ਦਿਲਚਸਪ ਵਰਤੋਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ
  • ਕਈ ਇਨਪੁਟ ਤਰੀਕੇ (ਕੀਬੋਰਡ ਅਤੇ ਮਾਊਸ ਘਟਨਾਵਾਂ)
  • ਵਧਣਯੋਗ ਆਰਕੀਟੈਕਚਰ ਜੋ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਾਲ ਆਸਾਨੀ ਨਾਲ ਵਧਾਇਆ ਜਾ ਸਕਦਾ ਹੈ

ਅਸਵੀਕਰਤਾ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦਾ ਯਤਨ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੀਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।