ਗੇਮਿੰਗ ਲੋਕਾਂ ਲਈ ਉਪਲਬਧ ਮਨੋਰੰਜਨ ਦਾ ਇੱਕ ਰੂਪ ਹੈ। ਹਰ ਕਿਸਮ ਦੀਆਂ ਗੇਮਾਂ ਔਨਲਾਈਨ ਉਪਲਬਧ ਹਨ, ਮੋਬਾਈਲ ਡਿਵਾਈਸਾਂ 'ਤੇ, ਡੈਸਕਟੌਪ ਕੰਪਿਊਟਰਾਂ 'ਤੇ, ਆਦਿ। ਹੁਣ ਉਨ੍ਹਾਂ ਚੁਣੌਤੀਪੂਰਨ ਗੇਮਾਂ ਵਿੱਚੋਂ ਇੱਕ ਬਣਾਉਣ ਦਾ ਸਮਾਂ ਨਹੀਂ ਹੈ।
ਪਾਈਥਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਅਸੀਂ ਇੱਕ CLI ਟਿਕ-ਟੈਕ-ਟੋ ਗੇਮ ਬਣਾਵਾਂਗੇ। ਆਉ ਇੱਕ ਸਿੱਧੀ ਟਿਕ ਟੈਕ ਟੋ ਗੇਮ ਬਣਾਉਣ ਲਈ ਪਾਈਥਨ ਦੀ ਵਰਤੋਂ ਕਰੀਏ। ਇਹ ਗੇਮ ਤਰਕ ਬਣਾਉਣ ਅਤੇ ਕੋਡ ਨੂੰ ਸੰਗਠਿਤ ਕਰਨਾ ਸਿੱਖਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰੇਗਾ।
ਟਿਕ ਟੈਕ ਟੋ
ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਅਸੀਂ ਕੋਡਿੰਗ ਸ਼ੁਰੂ ਕਰੀਏ, ਮੈਂ ਸੋਚਿਆ ਕਿ ਮੈਂ ਜਲਦੀ ਹੀ ਗੇਮ ਨੂੰ ਸੰਖੇਪ ਕਰਾਂਗਾ ਅਤੇ ਇਸਨੂੰ ਵਿਕਸਿਤ ਕਰਨ ਲਈ ਆਪਣੀ ਯੋਜਨਾ ਬਾਰੇ ਚਰਚਾ ਕਰਾਂਗਾ।
ਪਹਿਲਾਂ, ਅਸੀਂ ਇਹ ਧਾਰਨਾ ਸਥਾਪਿਤ ਕਰਾਂਗੇ ਕਿ Xs ਹਮੇਸ਼ਾ ਪਹਿਲ ਕਰਦੇ ਹਨ ਅਤੇ ਪਹਿਲਾਂ ਅੱਗੇ ਵਧਦੇ ਹਨ, ਉਪਭੋਗਤਾ ਨੂੰ ਕੰਮ ਕਰਨ ਦਾ ਮੌਕਾ ਦਿੰਦੇ ਹਨ।
ਕੰਸੋਲ ਤੋਂ, 1 ਅਤੇ 9 ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਨੰਬਰ ਇਨਪੁਟ ਕੀਤਾ ਜਾਵੇਗਾ। ਇੱਕ ਗਰਿੱਡ ਵਿੱਚ ਜਿੱਥੇ ਹਰੇਕ ਨੰਬਰ ਇੱਕ ਵੱਖਰੀ ਸੰਖਿਆ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ (ਉੱਪਰ ਖੱਬੇ 1 ਹੈ, ਹੇਠਾਂ ਸੱਜੇ 9 ਹੈ)।
ਕੰਪਿਊਟਰ ਆਟੋਮੈਟਿਕ ਹੀ ਨਿਰਧਾਰਿਤ ਕਰੇਗਾ ਅਤੇ ਇੱਕ ਵਾਰ ਉਪਭੋਗਤਾ ਦੇ ਚਲੇ ਜਾਣ 'ਤੇ ਆਪਣੀ ਚਾਲ ਬਣਾ ਦੇਵੇਗਾ। ਇੱਕ ਪ੍ਰਾਇਮਰੀ ਗੇਮ ਲੂਪ ਜੋ ਕਈ ਵੱਖ-ਵੱਖ ਰੁਟੀਨਾਂ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ਮੇਰੇ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਵੇਗਾ।
ਕਿਸ ਫੰਕਸ਼ਨ ਨੂੰ ਪੂਰਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ਸੰਭਵ ਤੌਰ 'ਤੇ ਇਸ ਪਾਠ-ਅਧਾਰਿਤ ਪਾਠ ਦੇ ਹਰੇਕ ਸਿਰਲੇਖ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ।
ਇੱਕ ਬੋਰਡ ਡਿਜ਼ਾਈਨ ਕਰਨਾ
ਅਸੀਂ ਗਰਿੱਡ ਲੇਆਉਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਬੋਰਡ ਨੂੰ ਦਰਸਾਵਾਂਗੇ, ਜਿਵੇਂ ਕਿ ਮੈਂ ਪਹਿਲਾਂ ਦੱਸਿਆ ਸੀ। ਅਸੀਂ ਅਜਿਹਾ ਕਰਨ ਲਈ ਪਾਈਥਨ ਵਿੱਚ ਬੋਰਡ ਨਾਮ ਦੀ ਇੱਕ ਸੂਚੀ ਬਣਾਵਾਂਗੇ, ਅਤੇ ਇਹ 10 ਖਾਲੀ ਮੁੱਲਾਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਵੇਗਾ।
ਕਿਉਂਕਿ ਉਪਭੋਗਤਾ ਕੇਵਲ 1 ਤੋਂ 9 ਤੱਕ ਨੰਬਰ ਦਰਜ ਕਰ ਸਕਦਾ ਹੈ, 0 ਤੋਂ 8 ਤੱਕ ਨਹੀਂ, ਸਾਡੇ ਕੋਲ 10 ਦੀ ਬਜਾਏ 9 ਖਾਲੀ ਮੁੱਲ ਹਨ। ਇਸ ਲਈ, ਚੀਜ਼ਾਂ ਨੂੰ ਸਰਲ ਬਣਾਉਣ ਲਈ, ਅਸੀਂ ਆਪਣੀ ਸੂਚੀ ਦੀ ਪਹਿਲੀ ਐਂਟਰੀ ਨੂੰ "ਖਾਲੀ ਟੈਕਸਟ" ਦਾ ਮੁੱਲ ਦੇਵਾਂਗੇ।
ਇਸ ਤਰੀਕੇ ਨਾਲ, ਅਸੀਂ ਆਪਣੀ ਸੂਚੀ ਵਿੱਚ ਐਂਟਰੀਆਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਨ ਲਈ 1-9 ਦੀ ਬਜਾਏ 0-8 ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ।
ਸੰਮਿਲਿਤ ਪੱਤਰ()
ਇਸ ਫੰਕਸ਼ਨ ਲਈ ਪੱਤਰ ਅਤੇ ਪੋਸ ਦੋ ਇਨਪੁਟਸ ਹੋਣਗੇ। ਇਹ ਸਿਰਫ ਬੇਨਤੀ ਕੀਤੇ ਗਏ ਸਥਾਨ 'ਤੇ ਬੇਨਤੀ ਕੀਤੀ ਚਿੱਠੀ ਪਾਵੇਗਾ।
spaceIsfree(pos)
ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਕਿਹਾ ਗਿਆ ਹੈ, ਇਹ ਵਿਧੀ ਸਾਨੂੰ ਸੂਚਿਤ ਕਰੇਗੀ ਜੇਕਰ ਨਿਰਧਾਰਤ ਖੇਤਰ ਮੁਫ਼ਤ ਹੈ. ਇਸ ਲਈ, ਉੱਥੇ ਪਹਿਲਾਂ ਤੋਂ ਕੋਈ ਪੱਤਰ ਨਹੀਂ ਹੈ. Pos, ਇਸਦਾ ਇੱਕੋ ਇੱਕ ਆਰਗੂਮੈਂਟ, 1 ਅਤੇ 9 ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਪੂਰਨ ਅੰਕ ਹੋਵੇਗਾ।
ਪ੍ਰਿੰਟ ਬੋਰਡ (ਬੋਰਡ)
ਬੋਰਡ ਨੂੰ ਇਸ ਵਿਧੀ ਲਈ ਇੱਕ ਦਲੀਲ ਵਜੋਂ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਜੋ ਇਸਨੂੰ ਕੰਸੋਲ 'ਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ।
isWinner()
ਮੌਜੂਦਾ ਬੋਰਡ ਦੇ ਆਧਾਰ 'ਤੇ, ਇਹ ਫੰਕਸ਼ਨ ਸਾਨੂੰ ਦੱਸੇਗਾ ਕਿ ਕੀ ਸਪਲਾਈ ਕੀਤਾ ਪੱਤਰ ਜਿੱਤ ਗਿਆ ਹੈ। ਇਸ ਦੇ ਦੋ ਮਾਪਦੰਡ ਹਨ: ਲੇ ਅਤੇ ਬੋਰਡ (ਅੱਖਰ)।
ਇਹ "X" ਜਾਂ "O" ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਸਿਰਫ਼ ਇਹ ਦੇਖਣ ਲਈ ਦੇਖੋ ਕਿ ਕੀ ਬੋਰਡ 'ਤੇ ਹਰੇਕ ਸੰਭਾਵੀ ਜੇਤੂ ਲਾਈਨ 'ਤੇ ਨਿਰਧਾਰਤ ਅੱਖਰ ਮੌਜੂਦ ਹੈ।
ਮੁੱਖ()
ਜਦੋਂ ਅਸੀਂ ਗੇਮ ਸ਼ੁਰੂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਅਸੀਂ ਇਸ ਵਿਧੀ ਨੂੰ ਕਾਲ ਕਰਾਂਗੇ। ਇਹ ਸਾਡੇ ਪ੍ਰੋਗਰਾਮ ਦੇ ਬਹੁਤ ਸਾਰੇ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਨੂੰ ਕਾਲ ਕਰੇਗਾ ਅਤੇ ਨਿਰਦੇਸ਼ਿਤ ਕਰੇਗਾ ਕਿ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਕਿਵੇਂ ਚਲਾਉਣਾ ਹੈ।
isBoardFull()
ਜਦੋਂ ਇੱਕ ਇਨਪੁਟ ਦੇ ਤੌਰ 'ਤੇ ਜਹਾਜ਼ ਵਿੱਚ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਵਿਧੀ ਸਿਰਫ਼ ਸਹੀ ਵਾਪਸ ਕਰੇਗੀ ਜੇਕਰ ਬੋਰਡ ਭਰਿਆ ਹੋਇਆ ਹੈ ਅਤੇ ਨਹੀਂ ਤਾਂ ਗਲਤ ਹੈ।
playerMove()
ਇਸ ਵਿਧੀ ਵਿੱਚ, ਅਸੀਂ ਉਪਭੋਗਤਾ ਤੋਂ ਇੱਕ ਮੂਵ ਦੀ ਬੇਨਤੀ ਕਰਾਂਗੇ ਅਤੇ ਇਸਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਾਂਗੇ। ਜੇਕਰ ਕਦਮ ਜਾਇਜ਼ ਹੈ ਤਾਂ ਪੱਤਰ ਬੋਰਡ ਵਿੱਚ ਜੋੜਿਆ ਜਾਵੇਗਾ। ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਅਸੀਂ ਉਪਭੋਗਤਾ ਦੇ ਫੀਡਬੈਕ ਦੀ ਬੇਨਤੀ ਕਰਦੇ ਰਹਾਂਗੇ।
CompMove() - AI
AI ਹੁਣ ਸ਼ੁਰੂ ਹੋਵੇਗਾ। ਕੰਪਿਊਟਰਾਂ ਦੀ ਗਤੀ ਨੂੰ ਇਸ ਫੰਕਸ਼ਨ ਦੁਆਰਾ ਨਿਯੰਤਰਿਤ ਕੀਤਾ ਜਾਵੇਗਾ। ਇਹ ਬੋਰਡ ਦਾ ਮੁਲਾਂਕਣ ਕਰੇਗਾ ਅਤੇ ਬਣਾਉਣ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਕਦਮ ਚੁਣੇਗਾ।
ਹੇਠਾਂ ਐਲਗੋਰਿਦਮ ਦੀ ਇੱਕ ਸੂਚੀ ਹੈ ਜੋ ਅਸੀਂ ਅਜਿਹਾ ਕਰਨ ਲਈ ਵਰਤਾਂਗੇ।
- ਜੇਕਰ ਮੌਜੂਦਾ ਪੜਾਅ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਇੱਕ 'ਤੇ ਜਾਓ।
- ਜੇ ਤੁਸੀਂ ਕਰ ਸਕਦੇ ਹੋ ਤਾਂ ਜਿੱਤਣ ਵਾਲੀ ਚਾਲ ਲਓ.
- ਅਗਲੇ ਮੋੜ 'ਤੇ ਉਸ ਸਥਿਤੀ ਵਿੱਚ ਚਲੇ ਜਾਓ ਜੇਕਰ ਖਿਡਾਰੀ ਕੋਲ ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਜਿੱਤਣ ਵਾਲੀ ਚਾਲ ਹੈ।
- ਇੱਕ ਕੋਨਾ ਚੁਣੋ ਅਤੇ ਇਸਨੂੰ ਮੋੜੋ. ਜੇਕਰ ਕਈ ਵਿਕਲਪ ਹਨ ਤਾਂ ਬੇਤਰਤੀਬੇ ਚੁਣੋ।
- ਆਪਣੇ ਆਪ ਨੂੰ ਮੱਧ ਵਿੱਚ ਰੱਖੋ.
- ਇੱਕ ਕਿਨਾਰੇ 'ਤੇ ਗੌਰ ਕਰੋ. ਜੇਕਰ ਕਈ ਵਿਕਲਪ ਹਨ ਤਾਂ ਬੇਤਰਤੀਬੇ ਚੁਣੋ।
- ਜੇਕਰ ਅੱਗੇ ਵਧਣ ਦਾ ਕੋਈ ਤਰੀਕਾ ਨਹੀਂ ਹੈ, ਤਾਂ ਖੇਡ ਟਾਈ ਵਿੱਚ ਖਤਮ ਹੁੰਦੀ ਹੈ।
ਬੇਤਰਤੀਬ ਚੁਣੋ()
ਸੰਭਾਵੀ ਟਿਕਾਣਿਆਂ ਦੀ ਸੂਚੀ ਦਿੱਤੇ ਜਾਣ 'ਤੇ, ਇਹ ਫੰਕਸ਼ਨ ਬੇਤਰਤੀਬੇ ਕਾਰਵਾਈ ਕਰਨ ਦੀ ਚੋਣ ਕਰੇਗਾ।
ਖੇਡ ਦੀ ਸ਼ੁਰੂਆਤ
ਖੇਡ ਨੂੰ ਹੁਣ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਕਿ ਅਸੀਂ ਆਪਣੇ ਸਾਰੇ ਕੰਮ ਪੂਰੇ ਕਰ ਲਏ ਹਨ। ਜੇਕਰ ਅਸੀਂ ਸਿਰਫ਼ ਇੱਕ ਵਾਰ ਗੇਮ ਚਲਾਉਣਾ ਚਾਹੁੰਦੇ ਹਾਂ ਤਾਂ ਸਾਨੂੰ ਸਿਰਫ਼ ਮੇਨ ਨੂੰ ਕਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।
ਪਰ ਸਾਡੀ ਸਥਿਤੀ ਵਿੱਚ, ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਗੇਮ ਉਦੋਂ ਤੱਕ ਚੱਲਦੀ ਰਹੇ ਜਦੋਂ ਤੱਕ ਉਪਭੋਗਤਾ ਇਹ ਫੈਸਲਾ ਨਹੀਂ ਕਰਦਾ ਕਿ ਉਹ ਹੁਣ ਖੇਡਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ ਹਨ, ਇਸਲਈ ਅਸੀਂ ਮੁੱਖ ਲਾਈਨ ਵਿੱਚ ਇੱਕ ਛੋਟਾ ਜਿਹਾ ਲੂਪ ਜੋੜਾਂਗੇ।
ਪੂਰਾ ਕੋਡ
ਇੱਥੇ ਸਾਡੀ ਗੇਮ ਲਈ ਪੂਰਾ ਕੋਡ ਹੈ, ਜੋ ਹੁਣ ਪੂਰਾ ਹੋ ਗਿਆ ਹੈ।
ਆਉਟਪੁੱਟ
ਸਿੱਟਾ
ਹੁਰੈ!
ਇੱਕ ਗੇਮ ਜੋ ਤੁਸੀਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਕ੍ਰੈਚ ਤੋਂ ਬਣਾਈ ਹੈ। ਇਹ ਕੋਈ ਖੇਡ ਨਹੀਂ ਹੈ ਜੋ ਅਸੀਂ ਨਿਯਮਤ ਤੌਰ 'ਤੇ ਖੇਡਦੇ ਹਾਂ। ਪਰ ਇਹ ਤਰਕ ਦੇ ਲਿਖਣ ਅਤੇ ਕੋਡ ਵਿੱਚ ਇੱਕ ਸਪਸ਼ਟ ਢਾਂਚੇ ਦੇ ਰੱਖ-ਰਖਾਅ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ।
ਹੈਪੀ ਕੋਡਿੰਗ!
ਕੋਈ ਜਵਾਬ ਛੱਡਣਾ