ਪਾਈਥਨ ਹੈਂਗਮੈਨ ਗੇਮ ਵਿੱਚ ਸਹੀ ਉਪਭੋਗਤਾ ਇੰਪੁੱਟ ਨੂੰ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾਵੇ
ਕੀ ਤੁਸੀਂ ਕਦੇ ਹੈਂਗਮੈਨ ਖੇਡਿਆ ਹੈ ਅਤੇ ਸੋਚਿਆ ਹੈ ਕਿ ਗੇਮ ਦੇ ਪਿੱਛੇ ਤਰਕ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ? 🕹️ ਪਾਈਥਨ ਵਿੱਚ, ਇੱਕ ਸਹਿਜ ਅਨੁਭਵ ਬਣਾਉਣਾ ਜਿੱਥੇ ਉਪਭੋਗਤਾ ਅੱਖਰਾਂ ਦਾ ਸਹੀ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦੇ ਹਨ, ਥੋੜਾ ਮੁਸ਼ਕਲ ਹੋ ਸਕਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਵੈਧ ਇਨਪੁਟਸ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ। ਇਹ ਲੇਖ ਇੱਕ ਭਰੋਸੇਮੰਦ ਲੂਪ ਬਣਾਉਣ 'ਤੇ ਕੇਂਦ੍ਰਤ ਕਰਦਾ ਹੈ ਜੋ ਹੈਂਗਮੈਨ ਨੂੰ ਚਲਾਉਣ ਵੇਲੇ ਉਪਭੋਗਤਾ ਇਨਪੁਟਸ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ।
ਬਹੁਤ ਸਾਰੇ ਡਿਵੈਲਪਰਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨ ਵਾਲੀਆਂ ਚੁਣੌਤੀਆਂ ਵਿੱਚੋਂ ਇੱਕ ਨੇਸਟਡ ਲੂਪਸ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਅਤੇ ਨਿਰਵਿਘਨ ਕਾਰਜਸ਼ੀਲਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਗੈਰ-ਵਰਣਮਾਲਾ ਵਾਲੇ ਅੱਖਰ ਜਾਂ ਖਾਲੀ ਅਨੁਮਾਨਾਂ ਵਰਗੇ ਇਨਪੁਟਸ ਨੂੰ ਰੱਦ ਕਰਨਾ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਗੁੰਝਲਦਾਰ ਬਣਾ ਸਕਦਾ ਹੈ। ਅਸੀਂ ਕਦਮ ਦਰ ਕਦਮ ਇਸ ਸਮੱਸਿਆ ਨਾਲ ਨਜਿੱਠਾਂਗੇ।
ਚੀਜ਼ਾਂ ਨੂੰ ਹੋਰ ਵੀ ਦਿਲਚਸਪ ਬਣਾਉਣ ਲਈ, ਇਹ ਗਾਈਡ ਤੁਹਾਨੂੰ ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ 'ਜਦੋਂ ਸੱਚ' ਲੂਪ ਨੂੰ ਰੱਖਣ ਦੇ ਤਰੀਕੇ ਬਾਰੇ ਦੱਸੇਗੀ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਗੇਮ ਖਿਡਾਰੀਆਂ ਲਈ ਤਕਨੀਕੀ ਤਰੁੱਟੀਆਂ ਜਾਂ ਬੱਗਾਂ ਨਾਲ ਹਾਵੀ ਹੋਏ ਬਿਨਾਂ ਅਨੁਭਵੀ ਬਣੀ ਰਹੇ। ਸਧਾਰਣ ਪਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਕਨੀਕਾਂ ਤੁਹਾਡੀ ਹੈਂਗਮੈਨ ਗੇਮ ਨੂੰ ਚਮਕਦਾਰ ਬਣਾ ਦੇਣਗੀਆਂ।
ਇਸ ਟਿਊਟੋਰਿਅਲ ਦੇ ਅੰਤ ਤੱਕ, ਤੁਸੀਂ ਨਾ ਸਿਰਫ਼ ਇਹ ਸਮਝ ਸਕੋਗੇ ਕਿ ਇਨਪੁਟਸ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਕਿਵੇਂ ਚੈੱਕ ਕਰਨਾ ਹੈ ਬਲਕਿ ਇਹ ਵੀ ਦੇਖੋਗੇ ਕਿ ਇਹਨਾਂ ਸਿਧਾਂਤਾਂ ਨੂੰ ਸਮਾਨ ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ ਕਿਵੇਂ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਭਾਵੇਂ ਤੁਸੀਂ ਮਨੋਰੰਜਨ ਲਈ ਜਾਂ ਵਿਦਿਅਕ ਉਦੇਸ਼ਾਂ ਲਈ ਕੋਈ ਗੇਮ ਬਣਾ ਰਹੇ ਹੋ, ਇਹ ਗਾਈਡ ਮਦਦ ਲਈ ਇੱਥੇ ਹੈ। ਆਓ ਸ਼ੁਰੂ ਕਰੀਏ! 🚀
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
isalpha() | ਇਹ ਜਾਂਚ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਕੀ ਇੱਕ ਸਤਰ ਵਿੱਚ ਸਿਰਫ਼ ਵਰਣਮਾਲਾ ਦੇ ਅੱਖਰ ਹਨ। ਉਦਾਹਰਨ ਲਈ, if vocab.isalpha(): ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਇੰਪੁੱਟ ਇੱਕ ਵੈਧ ਸ਼ਬਦ ਹੈ ਬਿਨਾਂ ਨੰਬਰਾਂ ਜਾਂ ਵਿਸ਼ੇਸ਼ ਅੱਖਰਾਂ ਦੇ। |
strip() | ਇੱਕ ਸਟ੍ਰਿੰਗ ਤੋਂ ਮੋਹਰੀ ਅਤੇ ਪਿੱਛੇ ਵਾਲੀ ਖਾਲੀ ਥਾਂ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, vocab = input("ਇੱਕ ਸ਼ਬਦ ਦਰਜ ਕਰੋ:").strip() ਦੁਰਘਟਨਾ ਵਾਲੀ ਥਾਂ ਤੋਂ ਬਿਨਾਂ ਸਾਫ਼ ਇਨਪੁਟ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। |
upper() | ਇੱਕ ਸਟ੍ਰਿੰਗ ਨੂੰ ਵੱਡੇ ਅੱਖਰਾਂ ਵਿੱਚ ਬਦਲਦਾ ਹੈ। ਗੇਮ ਵਿੱਚ, uppercase_vocab = vocab.upper() ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਮੈਚਿੰਗ ਲਈ ਇੰਪੁੱਟ ਨੂੰ ਮਿਆਰੀ ਬਣਾਉਂਦਾ ਹੈ। |
set() | ਵਿਲੱਖਣ ਤੱਤਾਂ ਦਾ ਸੰਗ੍ਰਹਿ ਬਣਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, self.guessed = set() ਬਿਨਾਂ ਡੁਪਲੀਕੇਟ ਦੇ ਅਨੁਮਾਨਿਤ ਅੱਖਰਾਂ ਦਾ ਰਿਕਾਰਡ ਰੱਖਦਾ ਹੈ। |
enumerate() | ਇੱਕ ਸੂਚਕਾਂਕ ਨਾਲ ਲੂਪ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, i ਲਈ, enumerate(self.word) ਵਿੱਚ ਅੱਖਰ: ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਇੱਕ ਸ਼ਬਦ ਦੇ ਸੂਚਕਾਂਕ ਅਤੇ ਅੱਖਰ ਦੋਵਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦਿੰਦਾ ਹੈ। |
join() | ਇੱਕ ਸਿੰਗਲ ਸਟ੍ਰਿੰਗ ਵਿੱਚ ਸਟ੍ਰਿੰਗਾਂ ਦੀ ਸੂਚੀ ਨੂੰ ਜੋੜਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਪ੍ਰਿੰਟ(" ".join(display)) ਅੱਖਰਾਂ ਦੇ ਵਿਚਕਾਰ ਸਪੇਸ ਦੇ ਨਾਲ ਅਨੁਮਾਨਿਤ ਸ਼ਬਦ ਦਿਖਾ ਕੇ ਗੇਮ ਆਉਟਪੁੱਟ ਨੂੰ ਫਾਰਮੈਟ ਕਰਦਾ ਹੈ। |
unittest.TestCase | ਯੂਨਿਟ ਟੈਸਟ ਬਣਾਉਣ ਲਈ ਇੱਕ ਢਾਂਚਾ। ਉਦਾਹਰਨ ਲਈ, ਕਲਾਸ TestHangman(unittest.TestCase): ਖਾਸ ਗੇਮ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਇੱਕ ਢਾਂਚਾ ਸੈੱਟ ਕਰਦਾ ਹੈ। |
continue | ਇੱਕ ਲੂਪ ਦੇ ਮੌਜੂਦਾ ਦੁਹਰਾਅ ਨੂੰ ਛੱਡਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ self.is_valid_guess(ਅਨੁਮਾਨ) ਨਹੀਂ: ਜਾਰੀ ਰੱਖੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਲੂਪ ਅਵੈਧ ਇਨਪੁਟ ਨਾਲ ਅੱਗੇ ਨਹੀਂ ਵਧਦਾ ਹੈ। |
break | ਮੌਜੂਦਾ ਲੂਪ ਤੋਂ ਤੁਰੰਤ ਬਾਹਰ ਨਿਕਲਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ vocab.isalpha(): ਇੱਕ ਵੈਧ ਇਨਪੁਟ ਪ੍ਰਾਪਤ ਹੋਣ 'ਤੇ ਬ੍ਰੇਕ ਲੂਪ ਨੂੰ ਰੋਕਦਾ ਹੈ। |
not in | ਇੱਕ ਕ੍ਰਮ ਵਿੱਚ ਇੱਕ ਤੱਤ ਦੀ ਅਣਹੋਂਦ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ "_" ਡਿਸਪਲੇ ਵਿੱਚ ਨਹੀਂ ਹੈ: ਇਹ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਖਿਡਾਰੀ ਨੇ ਸਾਰੇ ਅੱਖਰਾਂ ਦਾ ਅਨੁਮਾਨ ਲਗਾਇਆ ਹੈ। |
ਪਾਈਥਨ ਵਿੱਚ ਹੈਂਗਮੈਨ ਗੇਮ ਦੇ ਅੰਦਰੂਨੀ ਕੰਮਾਂ ਨੂੰ ਸਮਝਣਾ
ਹੈਂਗਮੈਨ ਗੇਮ ਲਈ ਸਾਡੇ ਦੁਆਰਾ ਬਣਾਈਆਂ ਗਈਆਂ ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਉਦੇਸ਼ ਖਿਡਾਰੀਆਂ ਲਈ ਇੱਕ ਇੰਟਰਐਕਟਿਵ ਅਤੇ ਗਲਤੀ-ਪ੍ਰੂਫ਼ ਅਨੁਭਵ ਬਣਾਉਣਾ ਹੈ। ਇਹਨਾਂ ਲਿਪੀਆਂ ਦੇ ਮੂਲ ਵਿੱਚ ਏ ਦੀ ਵਰਤੋਂ ਹੈ ਜਦਕਿ ਇਹ ਸੱਚ ਹੈ ਲੂਪ, ਜੋ ਕਿ ਵੈਧ ਇੰਪੁੱਟ ਪ੍ਰਦਾਨ ਕੀਤੇ ਜਾਣ ਤੱਕ ਨਿਰੰਤਰ ਪ੍ਰੋਂਪਟਿੰਗ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜਦੋਂ ਉਪਭੋਗਤਾ ਨੂੰ ਕੋਈ ਸ਼ਬਦ ਦਾਖਲ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਲੂਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਨਪੁਟ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ isalpha() ਢੰਗ. ਇਹ ਅਵੈਧ ਅੱਖਰਾਂ ਜਿਵੇਂ ਕਿ ਸੰਖਿਆਵਾਂ ਜਾਂ ਵਿਰਾਮ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਗੇਮ ਦੇ ਤਰਕ ਨੂੰ ਤੋੜਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਕਲਪਨਾ ਕਰੋ ਕਿ ਇੱਕ ਖਿਡਾਰੀ ਗਲਤੀ ਨਾਲ "ਹੈਲੋ" ਦੀ ਬਜਾਏ "hello123" ਟਾਈਪ ਕਰ ਰਿਹਾ ਹੈ—ਇਹ ਪ੍ਰਮਾਣਿਕਤਾ ਅਜਿਹੇ ਮਾਮਲਿਆਂ ਨੂੰ ਸ਼ਾਨਦਾਰ ਢੰਗ ਨਾਲ ਸੰਭਾਲਦਾ ਹੈ ਅਤੇ ਉਪਭੋਗਤਾ ਨੂੰ ਇੱਕ ਵੈਧ ਸ਼ਬਦ ਦੁਬਾਰਾ ਦਰਜ ਕਰਨ ਲਈ ਪ੍ਰੇਰਿਤ ਕਰਦਾ ਹੈ। 📝
ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਭਾਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਨਪੁਟਸ ਨੂੰ ਵੱਡੇ ਅੱਖਰਾਂ ਵਿੱਚ ਬਦਲਣਾ ਹੈ ਉਪਰਲਾ() ਢੰਗ. ਇਹ ਗੇਮ ਨੂੰ ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਬਣਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਸ਼ਬਦ "Python" ਹੈ ਅਤੇ ਖਿਡਾਰੀ "p" ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦਾ ਹੈ, ਤਾਂ ਪ੍ਰੋਗਰਾਮ ਅੱਖਰ ਦੇ ਕੇਸ ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ ਅਨੁਮਾਨ ਨਾਲ ਸਹੀ ਢੰਗ ਨਾਲ ਮੇਲ ਕਰੇਗਾ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਸਕ੍ਰਿਪਟ ਗੇਮ ਦੀ ਡਿਸਪਲੇਅ ਸਥਿਤੀ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਇੱਕ ਸੂਚੀ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਜਿਸ ਨੂੰ ਅਣਗਿਣਤ ਅੱਖਰਾਂ ਲਈ ਅੰਡਰਸਕੋਰ ਦੁਆਰਾ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। ਇਹ ਅੰਡਰਸਕੋਰ ਸਹੀ ਅੰਦਾਜ਼ੇ ਵਾਲੇ ਅੱਖਰਾਂ ਨਾਲ ਬਦਲੇ ਜਾਂਦੇ ਹਨ, ਖਿਡਾਰੀ ਨੂੰ ਉਹਨਾਂ ਦੀ ਤਰੱਕੀ 'ਤੇ ਵਿਜ਼ੂਅਲ ਫੀਡਬੈਕ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੇ ਹਨ। ਇਹ ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਇੱਕ ਬੁਝਾਰਤ ਨੂੰ ਇੱਕ ਟੁਕੜਾ ਹੱਲ ਕਰਨ ਵਰਗਾ ਹੈ, ਜੋ ਖੇਡ ਦੇ ਉਤਸ਼ਾਹ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ! 🎯
ਸਕਰਿਪਟ ਵਿੱਚ ਫੋਰ-ਲੂਪ ਡਿਸਪਲੇਅ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਵਿੱਚ ਇੱਕ ਪ੍ਰਮੁੱਖ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦਾ ਹੈ। ਇਹ ਪ੍ਰੀ-ਸੈੱਟ ਸ਼ਬਦ ਦੇ ਅੱਖਰਾਂ ਦੁਆਰਾ ਦੁਹਰਾਉਂਦਾ ਹੈ, ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਅਨੁਮਾਨਿਤ ਅੱਖਰ ਉਹਨਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਜਦੋਂ ਕੋਈ ਮੇਲ ਮਿਲਦਾ ਹੈ, ਤਾਂ ਸੰਬੰਧਿਤ ਅੰਡਰਸਕੋਰ ਨੂੰ ਅੱਖਰ ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਗੇਮ ਹਰ ਸਹੀ ਅੰਦਾਜ਼ੇ ਨਾਲ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅੱਪਡੇਟ ਹੁੰਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਸ਼ਬਦ "PYTHON" ਹੈ ਅਤੇ ਖਿਡਾਰੀ "P" ਦਾ ਅਨੁਮਾਨ ਲਗਾਉਂਦਾ ਹੈ, ਤਾਂ ਡਿਸਪਲੇਅ "_ _ _ _ _ _ _" ਤੋਂ "P _ _ _ _ _ _" ਵਿੱਚ ਬਦਲਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਖਿਡਾਰੀ ਨੂੰ ਉਹਨਾਂ ਦੀ ਤਰੱਕੀ ਦੀ ਕਲਪਨਾ ਕਰਨ ਵਿੱਚ ਮਦਦ ਮਿਲਦੀ ਹੈ। ਇਹ ਫੀਡਬੈਕ ਵਿਧੀ ਖਿਡਾਰੀ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਪ੍ਰੇਰਿਤ ਰੱਖਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਅੰਤ ਵਿੱਚ, ਗੇਮ ਇਹ ਪੁਸ਼ਟੀ ਕਰਕੇ ਜਿੱਤ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਡਿਸਪਲੇ ਵਿੱਚ ਸਾਰੇ ਅੰਡਰਸਕੋਰ ਬਦਲ ਦਿੱਤੇ ਗਏ ਹਨ। ਹਾਲਤ ਜੇਕਰ "_" ਡਿਸਪਲੇ ਵਿੱਚ ਨਹੀਂ ਹੈ ਮੁਲਾਂਕਣ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਖਿਡਾਰੀ ਨੇ ਸਾਰੇ ਅੱਖਰਾਂ ਦਾ ਸਫਲਤਾਪੂਰਵਕ ਅਨੁਮਾਨ ਲਗਾਇਆ ਹੈ। ਜੇਕਰ ਇਹ ਸੱਚ ਹੈ, ਤਾਂ ਗੇਮ ਖਿਡਾਰੀ ਨੂੰ ਵਧਾਈ ਦਿੰਦੀ ਹੈ ਅਤੇ ਸਮਾਪਤ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਹ ਅਨੁਭਵੀ ਜਿੱਤ ਦੀ ਸਥਿਤੀ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਖਿਡਾਰੀ ਖੇਡ ਨੂੰ ਪੂਰਾ ਕਰਨ 'ਤੇ ਪ੍ਰਾਪਤੀ ਦੀ ਭਾਵਨਾ ਮਹਿਸੂਸ ਕਰਦੇ ਹਨ। ਸਧਾਰਣ ਪਰ ਸ਼ਕਤੀਸ਼ਾਲੀ ਕਮਾਂਡਾਂ ਅਤੇ ਢਾਂਚਿਆਂ ਨੂੰ ਜੋੜ ਕੇ, ਸਕ੍ਰਿਪਟ ਇੱਕ ਸ਼ੁਰੂਆਤੀ-ਦੋਸਤਾਨਾ ਹੈਂਗਮੈਨ ਗੇਮ ਲਈ ਇੱਕ ਮਜ਼ਬੂਤ ਫਰੇਮਵਰਕ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੀ ਹੈ ਜਦੋਂ ਕਿ ਭਵਿੱਖ ਵਿੱਚ ਸੁਧਾਰਾਂ ਲਈ ਕਾਫ਼ੀ ਮਾਡਿਊਲਰ ਵੀ ਹੈ। 🚀
ਪਾਈਥਨ ਵਿੱਚ ਇੱਕ ਹੈਂਗਮੈਨ ਗੇਮ ਬਣਾਉਣਾ: ਕੁਸ਼ਲ ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ
ਇਹ ਪਹੁੰਚ ਬੈਕਐਂਡ ਲਾਗੂ ਕਰਨ ਲਈ ਪਾਈਥਨ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਇੱਕ ਮਾਡਿਊਲਰ ਢਾਂਚੇ ਦੇ ਨਾਲ ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਗੇਮ ਤਰਕ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਤ ਕਰਦੀ ਹੈ।
# Hangman Game: Using nested loops and clear input validation
def hangman_game():
print("Let's Play Hangman Game!")
# Prompt user for a valid English word
while True:
vocab = input("Please enter an English word: ")
if vocab.isalpha():
uppercase_vocab = vocab.upper()
break
else:
print(f"Your input '{vocab}' is not a valid English word.")
# Initialize display for the word
display = ["_" for _ in range(len(uppercase_vocab))]
print(" ".join(display))
# Start guessing loop
while True:
word = input("Please enter an alphabetic character: ")
if len(word) == 1 and word.isalpha():
uppercase_word = word.upper()
# Update display if the guessed letter is correct
for i in range(len(uppercase_vocab)):
if uppercase_vocab[i] == uppercase_word:
display[i] = uppercase_word
print(" ".join(display))
# Check if the game is won
if "_" not in display:
print("Congratulations! You've guessed the word!")
break
else:
print(f"Your input '{word}' is not valid.")
# Run the game
hangman_game()
OOP ਪਹੁੰਚ ਨਾਲ ਸੁਧਾਰੀ ਗਈ ਹੈਂਗਮੈਨ ਗੇਮ
ਇਹ ਹੱਲ ਬਿਹਤਰ ਮਾਡਿਊਲਰਿਟੀ ਅਤੇ ਕੋਡ ਦੀ ਮੁੜ ਵਰਤੋਂ ਲਈ ਪਾਈਥਨ ਦੇ ਆਬਜੈਕਟ-ਓਰੀਐਂਟਡ ਪ੍ਰੋਗਰਾਮਿੰਗ (OOP) ਪੈਰਾਡਾਈਮ ਦਾ ਲਾਭ ਉਠਾਉਂਦਾ ਹੈ।
class Hangman:
def __init__(self, word):
self.word = word.upper()
self.display = ["_" for _ in self.word]
self.guessed = set()
def is_valid_guess(self, guess):
return len(guess) == 1 and guess.isalpha()
def update_display(self, guess):
for i, letter in enumerate(self.word):
if letter == guess:
self.display[i] = guess
def play(self):
print("Welcome to OOP Hangman!")
while "_" in self.display:
print(" ".join(self.display))
guess = input("Guess a letter: ").upper()
if not self.is_valid_guess(guess):
print("Invalid input. Please try again.")
continue
if guess in self.guessed:
print(f"You've already guessed '{guess}'. Try another.")
continue
self.guessed.add(guess)
self.update_display(guess)
print(f"Congratulations! You've guessed the word: {self.word}")
# Example usage
if __name__ == "__main__":
vocab = input("Enter a word for the Hangman game: ").strip()
if vocab.isalpha():
game = Hangman(vocab)
game.play()
else:
print("Please provide a valid word.")
ਹੈਂਗਮੈਨ ਗੇਮ ਲਈ ਯੂਨਿਟ ਟੈਸਟ
ਇਸ ਭਾਗ ਵਿੱਚ ਹੈਂਗਮੈਨ ਗੇਮ ਕੰਪੋਨੈਂਟਸ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਪਾਈਥਨ ਦੇ 'ਯੂਨਿਟੈਸਟ' ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਯੂਨਿਟ ਟੈਸਟ ਸ਼ਾਮਲ ਹਨ।
import unittest
from hangman_game import Hangman
class TestHangman(unittest.TestCase):
def test_is_valid_guess(self):
game = Hangman("Python")
self.assertTrue(game.is_valid_guess("p"))
self.assertFalse(game.is_valid_guess("Py"))
self.assertFalse(game.is_valid_guess("1"))
def test_update_display(self):
game = Hangman("Python")
game.update_display("P")
self.assertEqual(game.display[0], "P")
def test_game_winning_condition(self):
game = Hangman("Hi")
game.update_display("H")
game.update_display("I")
self.assertNotIn("_", game.display)
if __name__ == "__main__":
unittest.main()
ਹੈਂਗਮੈਨ ਲਈ ਇੱਕ ਉਪਭੋਗਤਾ-ਅਨੁਕੂਲ ਇਨਪੁਟ ਲੂਪ ਬਣਾਉਣਾ
ਪਾਈਥਨ ਹੈਂਗਮੈਨ ਗੇਮ ਬਣਾਉਣ ਵਿੱਚ, ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ ਇੱਕ ਉਪਭੋਗਤਾ-ਅਨੁਕੂਲ ਲੂਪ ਡਿਜ਼ਾਈਨ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਇੱਕ ਪਹਿਲੂ ਨੂੰ ਅਕਸਰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਇਨਪੁਟ ਸਿਸਟਮ ਮਜ਼ਬੂਤ ਅਤੇ ਅਨੁਭਵੀ ਹੈ। ਇੱਕ ਖਿਡਾਰੀ ਨੂੰ ਖੇਡ ਨੂੰ ਤੋੜਨ ਦੀ ਚਿੰਤਾ ਕੀਤੇ ਬਿਨਾਂ ਸੁਤੰਤਰ ਰੂਪ ਵਿੱਚ ਅਨੁਮਾਨ ਲਗਾਉਣ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਅਸੀਂ ਕਮਾਂਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ ਜਿਵੇਂ ਕਿ isalpha() ਅਵੈਧ ਅੱਖਰਾਂ ਨੂੰ ਫਿਲਟਰ ਕਰਨ ਲਈ ਅਤੇ len() ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਇੰਪੁੱਟ ਸਿਰਫ ਇੱਕ ਅੱਖਰ ਲੰਬਾ ਹੈ। ਇਕੱਠੇ ਮਿਲ ਕੇ, ਇਹ ਜਾਂਚਾਂ ਇੱਕ ਨਿਰਵਿਘਨ ਅਨੁਭਵ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ, ਜਿਸ ਨਾਲ ਖਿਡਾਰੀਆਂ ਨੂੰ ਬੁਝਾਰਤ ਨੂੰ ਸੁਲਝਾਉਣ ਦੇ ਮਜ਼ੇ 'ਤੇ ਧਿਆਨ ਦੇਣ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲਦੀ ਹੈ। 🎮
ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਵਿਚਾਰ ਹਰੇਕ ਅਨੁਮਾਨ ਲਈ ਫੀਡਬੈਕ ਪ੍ਰਦਾਨ ਕਰਨਾ ਹੈ। ਵਿਜ਼ੂਅਲ ਪ੍ਰਤੀਨਿਧਤਾ ਇੱਥੇ ਇੱਕ ਵੱਡੀ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੀ ਹੈ. ਅੰਡਰਸਕੋਰ ਦੇ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤੀ ਸੂਚੀ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਖਿਡਾਰੀ ਆਪਣੀ ਤਰੱਕੀ ਦੇਖਦੇ ਹਨ ਜਿਵੇਂ ਕਿ ਉਹ ਸਹੀ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦੇ ਹਨ। ਇਹ "ਵਧੇ ਹੋਏ ਪ੍ਰਗਟਾਵੇ" ਦੁਬਿਧਾ ਅਤੇ ਸੰਤੁਸ਼ਟੀ ਪੈਦਾ ਕਰਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਵਰਤ ਕੇ ਸੈੱਟ() ਅਨੁਮਾਨਿਤ ਅੱਖਰਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਡੁਪਲੀਕੇਟ ਅੰਦਾਜ਼ੇ ਗੇਮ ਵਿੱਚ ਵਿਘਨ ਨਹੀਂ ਪਾਉਂਦੇ ਹਨ, ਖਿਡਾਰੀ ਨੂੰ ਦੁਹਰਾਉਣ ਲਈ ਸਜ਼ਾ ਦਿੱਤੇ ਬਿਨਾਂ ਪ੍ਰਵਾਹ ਨੂੰ ਕਾਇਮ ਰੱਖਦੇ ਹਨ। ਉਦਾਹਰਨ ਲਈ, "A" ਦਾ ਕਈ ਵਾਰ ਅਨੁਮਾਨ ਲਗਾਉਣ ਨਾਲ ਗੇਮ ਰੀਸੈਟ ਨਹੀਂ ਹੋਵੇਗੀ ਜਾਂ ਬਰੇਕ ਨਹੀਂ ਹੋਵੇਗੀ ਪਰ ਇੱਕ ਕੋਮਲ ਰੀਮਾਈਂਡਰ ਪ੍ਰਦਾਨ ਕਰੇਗਾ।
ਅੰਤ ਵਿੱਚ, ਖੇਡ ਨੂੰ ਤਰਕ ਨਾਲ ਸਮੇਟਣ ਲਈ ਇੱਕ ਅੰਤ ਦੀ ਸ਼ਰਤ ਸ਼ਾਮਲ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ। ਇਹ ਜਾਂਚ ਕਰਨਾ ਕਿ ਕੀ ਸਾਰੇ ਅੰਡਰਸਕੋਰ ਅੱਖਰਾਂ ਨਾਲ ਬਦਲ ਦਿੱਤੇ ਗਏ ਹਨ, ਇੱਕ ਸਪਸ਼ਟ ਅਤੇ ਜਸ਼ਨ ਜਿੱਤ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਖਿਡਾਰੀ ਨੂੰ ਜਿੱਤਣ 'ਤੇ ਵਧਾਈ ਦੇਣ ਵਾਲੇ ਸੰਦੇਸ਼ ਨੂੰ ਜੋੜਨਾ ਅਨੁਭਵ ਨੂੰ ਵਧੇਰੇ ਦਿਲਚਸਪ ਅਤੇ ਫਲਦਾਇਕ ਬਣਾਉਂਦਾ ਹੈ। ਇਹਨਾਂ ਅਕਸਰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤੇ ਪਹਿਲੂਆਂ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਤ ਕਰਕੇ, ਤੁਸੀਂ ਇੱਕ ਹੈਂਗਮੈਨ ਗੇਮ ਬਣਾ ਸਕਦੇ ਹੋ ਜੋ ਨਾ ਸਿਰਫ਼ ਕਾਰਜਸ਼ੀਲ ਹੈ, ਸਗੋਂ ਹਰ ਪੱਧਰ ਦੇ ਖਿਡਾਰੀਆਂ ਲਈ ਪਾਲਿਸ਼ ਅਤੇ ਮਜ਼ੇਦਾਰ ਵੀ ਹੈ। 🌟
ਪਾਈਥਨ ਹੈਂਗਮੈਨ ਗੇਮ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- ਮੈਂ ਇਹ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾ ਸਕਦਾ ਹਾਂ ਕਿ ਖਿਡਾਰੀ ਸਿਰਫ਼ ਵੈਧ ਅਨੁਮਾਨ ਹੀ ਇਨਪੁਟ ਕਰਦੇ ਹਨ?
- ਵਰਤੋ isalpha() ਸਿਰਫ਼ ਵਰਣਮਾਲਾ ਦੇ ਅੱਖਰਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਅਤੇ len() ਇੰਪੁੱਟ ਨੂੰ ਇੱਕ ਅੱਖਰ ਤੱਕ ਸੀਮਤ ਕਰਨ ਲਈ।
- ਕੀ ਮੈਂ ਗੇਮ ਨੂੰ ਕੇਸ-ਸੰਵੇਦਨਸ਼ੀਲ ਬਣਾ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਵਰਤਦੇ ਹੋਏ ਸਾਰੇ ਇਨਪੁਟਸ ਅਤੇ ਪ੍ਰੀਸੈਟ ਸ਼ਬਦ ਨੂੰ ਵੱਡੇ ਅੱਖਰਾਂ ਵਿੱਚ ਬਦਲੋ upper() ਇਕਸਾਰ ਮੇਲ ਲਈ.
- ਮੈਂ ਪਹਿਲਾਂ ਹੀ ਅਨੁਮਾਨਿਤ ਅੱਖਰਾਂ ਨੂੰ ਕਿਵੇਂ ਟਰੈਕ ਕਰਾਂ?
- ਤੁਸੀਂ ਏ set() ਅਨੁਮਾਨਿਤ ਅੱਖਰ ਸਟੋਰ ਕਰਨ ਲਈ. ਨਵੇਂ ਅੰਦਾਜ਼ੇ ਵਜੋਂ ਸਵੀਕਾਰ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਕੋਈ ਅੱਖਰ ਸੈੱਟ ਵਿੱਚ ਹੈ ਜਾਂ ਨਹੀਂ।
- ਮੈਂ ਅਵੈਧ ਇਨਪੁਟਸ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਾਂ?
- ਪਲੇਅਰ ਨੂੰ ਵਾਰ-ਵਾਰ ਪੁੱਛਣ ਲਈ ਕੰਡੀਸ਼ਨਲ ਸਟੇਟਮੈਂਟਾਂ ਵਾਲੇ ਲੂਪ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜਦੋਂ ਤੱਕ ਉਹ ਵੈਧ ਇਨਪੁਟ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕਰਦੇ। ਉਦਾਹਰਨ ਲਈ, ਨਾਲ ਚੈੱਕ ਕਰੋ if len(word) == 1 and word.isalpha().
- ਕੀ ਮੈਂ ਗੇਮ ਵਿੱਚ ਸਕੋਰਿੰਗ ਸਿਸਟਮ ਜੋੜ ਸਕਦਾ/ਸਕਦੀ ਹਾਂ?
- ਹਾਂ, ਗਲਤ ਅਨੁਮਾਨਾਂ ਜਾਂ ਕੁੱਲ ਕੋਸ਼ਿਸ਼ਾਂ ਲਈ ਇੱਕ ਕਾਊਂਟਰ ਬਣਾਈ ਰੱਖੋ ਅਤੇ ਹਰੇਕ ਅੰਦਾਜ਼ੇ ਤੋਂ ਬਾਅਦ ਇਸਨੂੰ ਖਿਡਾਰੀ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ।
ਹੈਂਗਮੈਨ ਗੇਮ ਦਾ ਇੱਕ ਪੂਰਾ ਰੈਪ-ਅੱਪ
ਪਾਈਥਨ ਵਿੱਚ ਹੈਂਗਮੈਨ ਗੇਮ ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨ ਡਿਜ਼ਾਈਨ ਵਰਗੇ ਕੀਮਤੀ ਹੁਨਰ ਸਿਖਾਉਂਦੀ ਹੈ। ਦੇ ਨਾਲ ਇੱਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਲੂਪ ਬਣਾ ਕੇ ਜਦਕਿ ਇਹ ਸੱਚ ਹੈ, ਖਿਡਾਰੀ ਇੱਕ ਸਹਿਜ ਅਨੁਮਾਨ ਲਗਾਉਣ ਦੇ ਅਨੁਭਵ ਦਾ ਆਨੰਦ ਲੈ ਸਕਦੇ ਹਨ। ਵਿਜ਼ੂਅਲ ਫੀਡਬੈਕ ਅਤੇ ਅੰਤ ਦੀਆਂ ਸਥਿਤੀਆਂ ਗੇਮ ਦੀ ਸ਼ਮੂਲੀਅਤ ਨੂੰ ਵਧਾਉਂਦੀਆਂ ਹਨ। 🧩
ਅਵੈਧ ਅਨੁਮਾਨਾਂ ਨੂੰ ਸੰਭਾਲਣ ਤੋਂ ਲੈ ਕੇ ਅੱਖਰਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਤੱਕ, ਇਹ ਗੇਮ ਪਾਈਥਨ ਦੀਆਂ ਸਮਰੱਥਾਵਾਂ ਦੀਆਂ ਵਿਹਾਰਕ ਉਦਾਹਰਣਾਂ ਪੇਸ਼ ਕਰਦੀ ਹੈ। ਇਹ ਸੂਝ-ਬੂਝਾਂ ਨੂੰ ਹੋਰ ਇੰਟਰਐਕਟਿਵ ਐਪਲੀਕੇਸ਼ਨਾਂ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਖਿਡਾਰੀ ਪੂਰੇ ਅਨੁਭਵ ਦੌਰਾਨ ਪ੍ਰੇਰਿਤ ਅਤੇ ਇਨਾਮ ਪ੍ਰਾਪਤ ਕਰਦੇ ਰਹਿਣ। ਹੈਂਗਮੈਨ ਪ੍ਰੋਗਰਾਮਿੰਗ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਸਿੱਖਣ ਦਾ ਇੱਕ ਸ਼ਾਨਦਾਰ ਤਰੀਕਾ ਹੈ। 🚀
ਪਾਇਥਨ ਵਿੱਚ ਹੈਂਗਮੈਨ ਲਈ ਹਵਾਲੇ ਅਤੇ ਹੋਰ ਪੜ੍ਹਨਾ
- ਵਿਆਪਕ ਪਾਈਥਨ ਦਸਤਾਵੇਜ਼: ਸਤਰ ਵਿਧੀਆਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ ਜਿਵੇਂ ਕਿ isalpha() ਅਤੇ ਉੱਪਰ () ਅਧਿਕਾਰਤ ਪਾਈਥਨ ਡੌਕਸ 'ਤੇ. ਪਾਈਥਨ ਸਤਰ ਢੰਗ .
- ਪਾਈਥਨ ਲੂਪਸ ਲਈ ਸ਼ੁਰੂਆਤੀ ਗਾਈਡ: ਵਰਤਣ ਦੀਆਂ ਵਿਸਤ੍ਰਿਤ ਉਦਾਹਰਣਾਂ ਦੀ ਪੜਚੋਲ ਕਰੋ ਜਦਕਿ ਅਤੇ ਲਈ ਪਾਈਥਨ ਵਿੱਚ ਲੂਪਸ. ਰੀਅਲ ਪਾਈਥਨ: ਪਾਈਥਨ ਵਿੱਚ ਲੂਪਸ .
- ਇੰਟਰਐਕਟਿਵ ਪਾਈਥਨ ਪ੍ਰੋਜੈਕਟ: ਹੈਂਗਮੈਨ ਵਿਦ ਪਾਈਥਨ ਵਰਗੀਆਂ ਗੇਮਾਂ ਬਣਾਉਣ ਲਈ ਹੈਂਡ-ਆਨ ਟਿਊਟੋਰਿਅਲ ਲੱਭੋ। GeeksforGeeks: ਪਾਈਥਨ ਉਦਾਹਰਨਾਂ .
- ਗੇਮਾਂ ਦੇ ਨਾਲ ਓਓਪੀ ਸਿੱਖੋ: ਪਾਈਥਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਬਜੈਕਟ-ਓਰੀਐਂਟਿਡ ਪ੍ਰੋਗਰਾਮਿੰਗ ਅਤੇ ਗੇਮ ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਡੂੰਘਾਈ ਨਾਲ ਡੁਬਕੀ ਲਓ। ਪਾਈਥਨ ਨਾਲ ਖੋਜ ਕਰੋ .