# ਸਪੇਸ ਗੇਮ ਬਣਾਓ ਭਾਗ 5: ਸਕੋਰਿੰਗ ਅਤੇ ਜ਼ਿੰਦਗੀਆਂ ## ਲੈਕਚਰ ਤੋਂ ਪਹਿਲਾਂ ਕਵਿਜ਼ [ਲੈਕਚਰ ਤੋਂ ਪਹਿਲਾਂ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/web/quiz/37) ਤਿਆਰ ਹੋ ਜਾਓ ਆਪਣੀ ਸਪੇਸ ਗੇਮ ਨੂੰ ਇੱਕ ਅਸਲੀ ਗੇਮ ਬਣਾਉਣ ਲਈ? ਆਓ ਸਕੋਰਿੰਗ ਪੌਇੰਟਸ ਅਤੇ ਜ਼ਿੰਦਗੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੀਏ - ਇਹ ਉਹ ਮੁੱਖ ਮਕੈਨਿਕਸ ਹਨ ਜਿਨ੍ਹਾਂ ਨੇ ਸ਼ੁਰੂਆਤੀ ਆਰਕੇਡ ਗੇਮਾਂ ਜਿਵੇਂ ਕਿ ਸਪੇਸ ਇਨਵੇਡਰਜ਼ ਨੂੰ ਸਧਾਰਣ ਡੈਮੋ ਤੋਂ ਨਸ਼ੇ ਦੀ ਤਰ੍ਹਾਂ ਖੇਡਣ ਵਾਲੇ ਮਨੋਰੰਜਨ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ। ਇਹ ਉਹ ਜਗ੍ਹਾ ਹੈ ਜਿੱਥੇ ਤੁਹਾਡੀ ਗੇਮ ਸੱਚਮੁੱਚ ਖੇਡਣ ਯੋਗ ਬਣਦੀ ਹੈ। ## ਸਕ੍ਰੀਨ 'ਤੇ ਟੈਕਸਟ ਡਰਾਅ ਕਰਨਾ - ਤੁਹਾਡੀ ਗੇਮ ਦੀ ਆਵਾਜ਼ ਤੁਹਾਡਾ ਸਕੋਰ ਦਿਖਾਉਣ ਲਈ, ਸਾਨੂੰ ਕੈਨਵਸ 'ਤੇ ਟੈਕਸਟ ਰੈਂਡਰ ਕਰਨਾ ਸਿੱਖਣਾ ਪਵੇਗਾ। `fillText()` ਮੈਥਡ ਤੁਹਾਡਾ ਮੁੱਖ ਸਾਧਨ ਹੈ - ਇਹ ਉਹੀ ਤਕਨੀਕ ਹੈ ਜੋ ਕਲਾਸਿਕ ਆਰਕੇਡ ਗੇਮਾਂ ਵਿੱਚ ਸਕੋਰ ਅਤੇ ਸਥਿਤੀ ਦੀ ਜਾਣਕਾਰੀ ਦਿਖਾਉਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਸੀ। ਤੁਹਾਨੂੰ ਟੈਕਸਟ ਦੀ ਦਿੱਖ 'ਤੇ ਪੂਰਾ ਕੰਟਰੋਲ ਹੈ: ```javascript ctx.font = "30px Arial"; ctx.fillStyle = "red"; ctx.textAlign = "right"; ctx.fillText("show this on the screen", 0, 0); ``` ✅ [ਕੈਨਵਸ 'ਤੇ ਟੈਕਸਟ ਸ਼ਾਮਲ ਕਰਨ](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_text) ਬਾਰੇ ਹੋਰ ਗਹਿਰਾਈ ਨਾਲ ਜਾਣੋ - ਤੁਸੀਂ ਫੌਂਟਸ ਅਤੇ ਸਟਾਈਲਿੰਗ ਨਾਲ ਕਿੰਨਾ ਰਚਨਾਤਮਕ ਹੋ ਸਕਦੇ ਹੋ, ਇਹ ਦੇਖ ਕੇ ਹੈਰਾਨ ਹੋ ਸਕਦੇ ਹੋ! ## ਜ਼ਿੰਦਗੀਆਂ - ਸਿਰਫ਼ ਇੱਕ ਗਿਣਤੀ ਤੋਂ ਵੱਧ ਗੇਮ ਡਿਜ਼ਾਈਨ ਵਿੱਚ, "ਜ਼ਿੰਦਗੀ" ਖਿਡਾਰੀ ਦੀ ਗਲਤੀ ਕਰਨ ਦੀ ਗੁੰਜਾਇਸ਼ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। ਇਹ ਧਾਰਨਾ ਪਿੰਬਾਲ ਮਸ਼ੀਨਾਂ ਤੋਂ ਆਈ ਹੈ, ਜਿੱਥੇ ਤੁਹਾਨੂੰ ਖੇਡਣ ਲਈ ਕਈ ਗੇਂਦਾਂ ਮਿਲਦੀਆਂ ਸਨ। ਸ਼ੁਰੂਆਤੀ ਵੀਡੀਓ ਗੇਮਾਂ ਜਿਵੇਂ ਕਿ ਐਸਟਰੋਇਡਜ਼ ਵਿੱਚ, ਜ਼ਿੰਦਗੀਆਂ ਨੇ ਖਿਡਾਰੀਆਂ ਨੂੰ ਖਤਰਾ ਮੋਲ ਲੈਣ ਅਤੇ ਗਲਤੀਆਂ ਤੋਂ ਸਿੱਖਣ ਦੀ ਆਜ਼ਾਦੀ ਦਿੱਤੀ। ਦ੍ਰਿਸ਼ਮਾਨ ਪ੍ਰਤੀਨਿਧਿਤਾ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਹੈ - ਸਿਰਫ "ਜ਼ਿੰਦਗੀਆਂ: 3" ਦੇ ਬਦਲੇ ਜਹਾਜ਼ ਦੇ ਆਈਕਾਨ ਦਿਖਾਉਣਾ ਤੁਰੰਤ ਦ੍ਰਿਸ਼ਮਾਨ ਪਛਾਣ ਪੈਦਾ ਕਰਦਾ ਹੈ, ਬਿਲਕੁਲ ਇਸੇ ਤਰ੍ਹਾਂ ਜਿਵੇਂ ਸ਼ੁਰੂਆਤੀ ਆਰਕੇਡ ਕੈਬਿਨੇਟਸ ਨੇ ਭਾਸ਼ਾ ਦੀਆਂ ਰੁਕਾਵਟਾਂ ਦੇ ਪਾਰ ਸੰਚਾਰ ਕਰਨ ਲਈ ਆਈਕਾਨੋਗ੍ਰਾਫੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। ## ਤੁਹਾਡੀ ਗੇਮ ਦੇ ਇਨਾਮ ਸਿਸਟਮ ਦਾ ਨਿਰਮਾਣ ਹੁਣ ਅਸੀਂ ਮੁੱਖ ਫੀਡਬੈਕ ਸਿਸਟਮ ਲਾਗੂ ਕਰਾਂਗੇ ਜੋ ਖਿਡਾਰੀਆਂ ਨੂੰ ਜੋੜ ਕੇ ਰੱਖਦੇ ਹਨ: - **ਸਕੋਰਿੰਗ ਸਿਸਟਮ**: ਹਰ ਤਬਾਹ ਕੀਤੇ ਗਏ ਦੁਸ਼ਮਣ ਜਹਾਜ਼ ਲਈ 100 ਪੌਇੰਟਸ ਮਿਲਦੇ ਹਨ (ਗੋਲ ਗਿਣਤੀਆਂ ਖਿਡਾਰੀਆਂ ਲਈ ਮਾਨਸਿਕ ਤੌਰ 'ਤੇ ਗਿਣਤੀ ਕਰਨਾ ਆਸਾਨ ਬਣਾਉਂਦੀਆਂ ਹਨ)। ਸਕੋਰ ਨੀਵੇਂ ਖੱਬੇ ਕੋਨੇ ਵਿੱਚ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ। - **ਜ਼ਿੰਦਗੀ ਕਾਊਂਟਰ**: ਤੁਹਾਡਾ ਹੀਰੋ ਤਿੰਨ ਜ਼ਿੰਦਗੀਆਂ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ - ਇੱਕ ਮਿਆਰ ਜੋ ਸ਼ੁਰੂਆਤੀ ਆਰਕੇਡ ਗੇਮਾਂ ਦੁਆਰਾ ਚੁਣੌਤੀ ਅਤੇ ਖੇਡਣ ਯੋਗਤਾ ਦੇ ਸੰਤੁਲਨ ਲਈ ਸਥਾਪਿਤ ਕੀਤਾ ਗਿਆ ਸੀ। ਹਰ ਵਾਰ ਦੁਸ਼ਮਣ ਨਾਲ ਟਕਰਾਉਣ 'ਤੇ ਇੱਕ ਜ਼ਿੰਦਗੀ ਘਟਦੀ ਹੈ। ਬਾਕੀ ਜ਼ਿੰਦਗੀਆਂ ਨੂੰ ਜਹਾਜ਼ ਦੇ ਆਈਕਾਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨੀਵੇਂ ਸੱਜੇ ਕੋਨੇ ਵਿੱਚ ਦਿਖਾਇਆ ਜਾਵੇਗਾ ![life image](../../../../translated_images/life.6fb9f50d53ee0413cd91aa411f7c296e10a1a6de5c4a4197c718b49bf7d63ebf.pa.png)। ## ਆਓ ਸ਼ੁਰੂ ਕਰੀਏ! ਸਭ ਤੋਂ ਪਹਿਲਾਂ, ਆਪਣਾ ਵਰਕਸਪੇਸ ਸੈਟ ਕਰੋ। ਆਪਣੇ `your-work` ਸਬ ਫੋਲਡਰ ਵਿੱਚ ਫਾਈਲਾਂ 'ਤੇ ਜਾਓ। ਤੁਹਾਨੂੰ ਇਹ ਫਾਈਲਾਂ ਵੇਖਣ ਨੂੰ ਮਿਲਣਗੀਆਂ: ```bash -| assets -| enemyShip.png -| player.png -| laserRed.png -| index.html -| app.js -| package.json ``` ਆਪਣੀ ਗੇਮ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ, `your_work` ਫੋਲਡਰ ਤੋਂ ਡਿਵੈਲਪਮੈਂਟ ਸਰਵਰ ਚਲਾਓ: ```bash cd your-work npm start ``` ਇਹ ਇੱਕ ਲੋਕਲ ਸਰਵਰ ਨੂੰ `http://localhost:5000` 'ਤੇ ਚਲਾਉਂਦਾ ਹੈ। ਇਸ ਪਤੇ ਨੂੰ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ ਅਤੇ ਆਪਣੀ ਗੇਮ ਵੇਖੋ। ਐਰੋ ਕੀਜ਼ ਨਾਲ ਕੰਟਰੋਲ ਦੀ ਜਾਂਚ ਕਰੋ ਅਤੇ ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਸਭ ਕੁਝ ਸਹੀ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ। ### ਕੋਡ ਲਿਖਣ ਦਾ ਸਮਾਂ! 1. **ਉਹ ਦ੍ਰਿਸ਼ਮਾਨ ਐਸੈਟਸ ਪ੍ਰਾਪਤ ਕਰੋ ਜਿਨ੍ਹਾਂ ਦੀ ਤੁਹਾਨੂੰ ਲੋੜ ਹੈ**। `solution/assets/` ਫੋਲਡਰ ਤੋਂ `life.png` ਐਸੈਟ ਨੂੰ ਕਾਪੀ ਕਰਕੇ ਆਪਣੇ `your-work` ਫੋਲਡਰ ਵਿੱਚ ਪਾਓ। ਫਿਰ `lifeImg` ਨੂੰ ਆਪਣੇ window.onload ਫੰਕਸ਼ਨ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ: ```javascript lifeImg = await loadTexture("assets/life.png"); ``` 1. `lifeImg` ਨੂੰ ਆਪਣੇ ਐਸੈਟਸ ਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਨਾ ਭੁੱਲੋ: ```javascript let heroImg, ... lifeImg, ... eventEmitter = new EventEmitter(); ``` 2. **ਆਪਣੇ ਗੇਮ ਵੈਰੀਏਬਲਸ ਸੈਟ ਕਰੋ**। ਆਪਣੇ ਕੁੱਲ ਸਕੋਰ (0 ਤੋਂ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋਏ) ਅਤੇ ਬਾਕੀ ਜ਼ਿੰਦਗੀਆਂ (3 ਤੋਂ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋਏ) ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ ਕੁਝ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ। ਅਸੀਂ ਇਹਨਾਂ ਨੂੰ ਸਕ੍ਰੀਨ 'ਤੇ ਦਿਖਾਵਾਂਗੇ ਤਾਂ ਜੋ ਖਿਡਾਰੀ ਹਮੇਸ਼ਾ ਜਾਣ ਸਕਣ ਕਿ ਉਹ ਕਿੱਥੇ ਖੜ੍ਹੇ ਹਨ। 3. **ਕੋਲਿਜ਼ਨ ਡਿਟੈਕਸ਼ਨ ਲਾਗੂ ਕਰੋ**। ਆਪਣੇ `updateGameObjects()` ਫੰਕਸ਼ਨ ਨੂੰ ਵਧਾਓ ਤਾਂ ਜੋ ਇਹ ਪਤਾ ਲਗਾ ਸਕੇ ਕਿ ਜਦੋਂ ਦੁਸ਼ਮਣ ਤੁਹਾਡੇ ਹੀਰੋ ਨਾਲ ਟਕਰਾਉਂਦੇ ਹਨ: ```javascript enemies.forEach(enemy => { const heroRect = hero.rectFromGameObject(); if (intersectRect(heroRect, enemy.rectFromGameObject())) { eventEmitter.emit(Messages.COLLISION_ENEMY_HERO, { enemy }); } }) ``` 4. **ਆਪਣੇ ਹੀਰੋ ਵਿੱਚ ਜ਼ਿੰਦਗੀ ਅਤੇ ਪੌਇੰਟ ਟਰੈਕਿੰਗ ਸ਼ਾਮਲ ਕਰੋ**। 1. **ਕਾਊਂਟਰ ਸ਼ੁਰੂ ਕਰੋ**। ਆਪਣੇ `Hero` ਕਲਾਸ ਵਿੱਚ `this.cooldown = 0` ਦੇ ਹੇਠਾਂ, ਜ਼ਿੰਦਗੀ ਅਤੇ ਪੌਇੰਟਸ ਸੈਟ ਕਰੋ: ```javascript this.life = 3; this.points = 0; ``` 1. **ਇਹ ਮੁੱਲ ਖਿਡਾਰੀ ਨੂੰ ਦਿਖਾਓ**। ਸਕ੍ਰੀਨ 'ਤੇ ਇਹ ਮੁੱਲ ਡਰਾਅ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ ਬਣਾਓ: ```javascript function drawLife() { // TODO, 35, 27 const START_POS = canvas.width - 180; for(let i=0; i < hero.life; i++ ) { ctx.drawImage( lifeImg, START_POS + (45 * (i+1) ), canvas.height - 37); } } function drawPoints() { ctx.font = "30px Arial"; ctx.fillStyle = "red"; ctx.textAlign = "left"; drawText("Points: " + hero.points, 10, canvas.height-20); } function drawText(message, x, y) { ctx.fillText(message, x, y); } ``` 1. **ਇਹ ਸਭ ਕੁਝ ਆਪਣੇ ਗੇਮ ਲੂਪ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ**। ਇਹ ਫੰਕਸ਼ਨ ਆਪਣੇ window.onload ਫੰਕਸ਼ਨ ਵਿੱਚ `updateGameObjects()` ਦੇ ਤੁਰੰਤ ਬਾਅਦ ਸ਼ਾਮਲ ਕਰੋ: ```javascript drawPoints(); drawLife(); ``` 1. **ਗੇਮ ਦੇ ਨਤੀਜੇ ਅਤੇ ਇਨਾਮ ਲਾਗੂ ਕਰੋ**। ਹੁਣ ਅਸੀਂ ਉਹ ਫੀਡਬੈਕ ਸਿਸਟਮ ਸ਼ਾਮਲ ਕਰਾਂਗੇ ਜੋ ਖਿਡਾਰੀ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਨੂੰ ਮਹੱਤਵਪੂਰਨ ਬਣਾਉਂਦੇ ਹਨ: 1. **ਟਕਰਾਅ ਜ਼ਿੰਦਗੀਆਂ ਘਟਾਉਂਦੇ ਹਨ**। ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਹਾਡਾ ਹੀਰੋ ਕਿਸੇ ਦੁਸ਼ਮਣ ਨਾਲ ਟਕਰਾਉਂਦਾ ਹੈ, ਤੁਹਾਨੂੰ ਇੱਕ ਜ਼ਿੰਦਗੀ ਗੁਆਉਣੀ ਚਾਹੀਦੀ ਹੈ। ਇਹ ਮੈਥਡ ਆਪਣੇ `Hero` ਕਲਾਸ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ: ```javascript decrementLife() { this.life--; if (this.life === 0) { this.dead = true; } } ``` 2. **ਦੁਸ਼ਮਣਾਂ ਨੂੰ ਮਾਰਨਾ ਪੌਇੰਟਸ ਦਿੰਦਾ ਹੈ**। ਹਰ ਸਫਲ ਹਿੱਟ ਲਈ 100 ਪੌਇੰਟਸ ਮਿਲਦੇ ਹਨ, ਜੋ ਸਹੀ ਸ਼ੂਟਿੰਗ ਲਈ ਤੁਰੰਤ ਸਕਾਰਾਤਮਕ ਫੀਡਬੈਕ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਆਪਣੇ Hero ਕਲਾਸ ਵਿੱਚ ਇਹ ਇੰਕ੍ਰੀਮੈਂਟ ਮੈਥਡ ਸ਼ਾਮਲ ਕਰੋ: ```javascript incrementPoints() { this.points += 100; } ``` ਹੁਣ ਇਹਨਾਂ ਫੰਕਸ਼ਨਸ ਨੂੰ ਆਪਣੇ ਕੋਲਿਜ਼ਨ ਇਵੈਂਟਸ ਨਾਲ ਜੋੜੋ: ```javascript eventEmitter.on(Messages.COLLISION_ENEMY_LASER, (_, { first, second }) => { first.dead = true; second.dead = true; hero.incrementPoints(); }) eventEmitter.on(Messages.COLLISION_ENEMY_HERO, (_, { enemy }) => { enemy.dead = true; hero.decrementLife(); }); ``` ✅ ਜਾਵਾਸਕ੍ਰਿਪਟ ਅਤੇ ਕੈਨਵਸ ਨਾਲ ਬਣਾਈਆਂ ਹੋਰ ਗੇਮਾਂ ਬਾਰੇ ਜਾਣਨ ਲਈ ਖੋਜ ਕਰੋ - ਤੁਸੀਂ ਹੈਰਾਨ ਹੋ ਸਕਦੇ ਹੋ ਕਿ ਕੀ ਕੁਝ ਸੰਭਵ ਹੈ! ਇਹ ਫੀਚਰ ਲਾਗੂ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਆਪਣੀ ਗੇਮ ਦੀ ਜਾਂਚ ਕਰੋ ਤਾਂ ਜੋ ਪੂਰਾ ਫੀਡਬੈਕ ਸਿਸਟਮ ਕਾਰਵਾਈ ਵਿੱਚ ਵੇਖਿਆ ਜਾ ਸਕੇ। ਤੁਹਾਨੂੰ ਨੀਵੇਂ ਸੱਜੇ ਕੋਨੇ ਵਿੱਚ ਜ਼ਿੰਦਗੀ ਦੇ ਆਈਕਾਨ, ਨੀਵੇਂ ਖੱਬੇ ਵਿੱਚ ਆਪਣਾ ਸਕੋਰ, ਅਤੇ ਟਕਰਾਅ ਨਾਲ ਜ਼ਿੰਦਗੀਆਂ ਘਟਦੀਆਂ ਅਤੇ ਸਫਲ ਸ਼ੂਟਸ ਨਾਲ ਸਕੋਰ ਵਧਦਾ ਹੋਇਆ ਵੇਖਣਾ ਚਾਹੀਦਾ ਹੈ। ਹੁਣ ਤੁਹਾਡੀ ਗੇਮ ਵਿੱਚ ਉਹ ਮੁੱਖ ਮਕੈਨਿਕਸ ਹਨ ਜਿਨ੍ਹਾਂ ਨੇ ਸ਼ੁਰੂਆਤੀ ਆਰਕੇਡ ਗੇਮਾਂ ਨੂੰ ਇੰਨਾ ਆਕਰਸ਼ਕ ਬਣਾਇਆ - ਸਪਸ਼ਟ ਲਕਸ਼, ਤੁਰੰਤ ਫੀਡਬੈਕ, ਅਤੇ ਖਿਡਾਰੀ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਲਈ ਮਹੱਤਵਪੂਰਨ ਨਤੀਜੇ। --- ## GitHub Copilot ਏਜੰਟ ਚੈਲੈਂਜ 🚀 ਏਜੰਟ ਮੋਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੇਠਾਂ ਦਿੱਤੇ ਚੈਲੈਂਜ ਨੂੰ ਪੂਰਾ ਕਰੋ: **ਵੇਰਵਾ:** ਸਪੇਸ ਗੇਮ ਦੇ ਸਕੋਰਿੰਗ ਸਿਸਟਮ ਨੂੰ ਵਧੀਆ ਬਣਾਉਣ ਲਈ ਇੱਕ ਹਾਈ ਸਕੋਰ ਫੀਚਰ ਲਾਗੂ ਕਰੋ ਜਿਸ ਵਿੱਚ ਪੱਕਾ ਸਟੋਰੇਜ ਅਤੇ ਬੋਨਸ ਸਕੋਰਿੰਗ ਮਕੈਨਿਕਸ ਸ਼ਾਮਲ ਹੋਣ। **ਪ੍ਰੋਮਪਟ:** ਇੱਕ ਹਾਈ ਸਕੋਰ ਸਿਸਟਮ ਬਣਾਓ ਜੋ ਖਿਡਾਰੀ ਦੇ ਸਭ ਤੋਂ ਵਧੀਆ ਸਕੋਰ ਨੂੰ localStorage ਵਿੱਚ ਸੇਵ ਕਰੇ। ਲਗਾਤਾਰ ਦੁਸ਼ਮਣਾਂ ਨੂੰ ਮਾਰਨ ਲਈ ਬੋਨਸ ਪੌਇੰਟਸ ਸ਼ਾਮਲ ਕਰੋ (ਕੌਮਬੋ ਸਿਸਟਮ) ਅਤੇ ਵੱਖ-ਵੱਖ ਦੁਸ਼ਮਣ ਪ੍ਰਕਾਰਾਂ ਲਈ ਵੱਖ-ਵੱਖ ਪੌਇੰਟ ਮੁੱਲ ਲਾਗੂ ਕਰੋ। ਜਦੋਂ ਖਿਡਾਰੀ ਨਵਾਂ ਹਾਈ ਸਕੋਰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਤਾਂ ਇੱਕ ਦ੍ਰਿਸ਼ਮਾਨ ਸੰਕੇਤਕ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਗੇਮ ਸਕ੍ਰੀਨ 'ਤੇ ਮੌਜੂਦਾ ਹਾਈ ਸਕੋਰ ਦਿਖਾਓ। ## 🚀 ਚੈਲੈਂਜ ਹੁਣ ਤੁਹਾਡੇ ਕੋਲ ਸਕੋਰਿੰਗ ਅਤੇ ਜ਼ਿੰਦਗੀਆਂ ਵਾਲੀ ਇੱਕ ਕਾਰਗਰ ਗੇਮ ਹੈ। ਸੋਚੋ ਕਿ ਹੋਰ ਕਿਹੜੇ ਫੀਚਰ ਖਿਡਾਰੀ ਦੇ ਤਜਰਬੇ ਨੂੰ ਵਧੀਆ ਬਣਾ ਸਕਦੇ ਹਨ। ## ਲੈਕਚਰ ਤੋਂ ਬਾਅਦ ਕਵਿਜ਼ [ਲੈਕਚਰ ਤੋਂ ਬਾਅਦ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/web/quiz/38) ## ਸਮੀਖਿਆ ਅਤੇ ਖੁਦ ਅਧਿਐਨ ਹੋਰ ਖੋਜ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ? ਗੇਮ ਸਕੋਰਿੰਗ ਅਤੇ ਜ਼ਿੰਦਗੀ ਸਿਸਟਮ ਦੇ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਬਾਰੇ ਖੋਜ ਕਰੋ। ਇੱਥੇ ਕੁਝ ਦਿਲਚਸਪ ਗੇਮ ਇੰਜਨ ਹਨ ਜਿਵੇਂ ਕਿ [PlayFab](https://playfab.com) ਜੋ ਸਕੋਰਿੰਗ, ਲੀਡਰਬੋਰਡਸ, ਅਤੇ ਖਿਡਾਰੀ ਦੀ ਤਰੱਕੀ ਨੂੰ ਸੰਭਾਲਦੇ ਹਨ। ਇਸ ਤਰ੍ਹਾਂ ਦੀ ਕਿਸੇ ਚੀਜ਼ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਤੁਹਾਡੀ ਗੇਮ ਨੂੰ ਅਗਲੇ ਪੱਧਰ 'ਤੇ ਕਿਵੇਂ ਲੈ ਜਾ ਸਕਦਾ ਹੈ? ## ਅਸਾਈਨਮੈਂਟ [ਸਕੋਰਿੰਗ ਗੇਮ ਬਣਾਓ](assignment.md) --- **ਅਸਵੀਕਰਤੀ**: ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁੱਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।