JavaScript ਕਨੈਕਟ ਚਾਰ: ਡਾਇਗਨਲ ਵਿਨ ਡਿਟਰਮੀਨੇਸ਼ਨ ਨਾਲ ਸਮੱਸਿਆ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ

JavaScript ਕਨੈਕਟ ਚਾਰ: ਡਾਇਗਨਲ ਵਿਨ ਡਿਟਰਮੀਨੇਸ਼ਨ ਨਾਲ ਸਮੱਸਿਆ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ
JavaScript ਕਨੈਕਟ ਚਾਰ: ਡਾਇਗਨਲ ਵਿਨ ਡਿਟਰਮੀਨੇਸ਼ਨ ਨਾਲ ਸਮੱਸਿਆ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ

ਕਨੈਕਟ ਫੋਰ ਵਿੱਚ ਡਾਇਗਨਲ ਵਿਨ ਸਮੱਸਿਆ ਨੂੰ ਸਮਝਣਾ

JavaScript ਅਤੇ jQuery ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਕਨੈਕਟ ਫੋਰ ਵਰਗੀਆਂ ਇੰਟਰਐਕਟਿਵ ਗੇਮਾਂ ਬਣਾਉਣਾ ਇੱਕ ਲਾਭਦਾਇਕ ਅਨੁਭਵ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਕਈ ਵਾਰ, ਅਜਿਹੇ ਮੁੱਦੇ ਪੈਦਾ ਹੁੰਦੇ ਹਨ ਜਿਸ ਵਿੱਚ ਸ਼ਾਮਲ ਤਰਕ ਦੀ ਡੂੰਘੀ ਸਮਝ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਕਨੈਕਟ ਫੋਰ ਗੇਮ ਵਿੱਚ ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਵਿਕਰਣ ਜਿੱਤਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਅਸਫਲਤਾ ਹੈ। ਇਹ ਨਿਰਾਸ਼ਾਜਨਕ ਹੋ ਸਕਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਖੇਡ ਦੇ ਹੋਰ ਸਾਰੇ ਪਹਿਲੂ ਉਮੀਦ ਅਨੁਸਾਰ ਕੰਮ ਕਰਦੇ ਜਾਪਦੇ ਹਨ।

ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਕਨੈਕਟ ਫੋਰ ਗੇਮ ਇੱਕ ਮੁੱਖ ਮੁੱਦੇ ਨੂੰ ਛੱਡ ਕੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੀ ਹੈ: ਗੇਮ ਉਦੋਂ ਨਹੀਂ ਪਛਾਣਦੀ ਜਦੋਂ ਇੱਕ ਖਿਡਾਰੀ ਨੇ ਚਾਰ ਡਿਸਕਾਂ ਨੂੰ ਤਿਰਛੇ ਰੂਪ ਵਿੱਚ ਇਕਸਾਰ ਕੀਤਾ ਹੁੰਦਾ ਹੈ। ਗੇਮ ਸੰਭਾਵਿਤ "ਵਧਾਈ" ਸੰਦੇਸ਼ ਦਿਖਾਏ ਬਿਨਾਂ ਜਾਰੀ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਖਿਡਾਰੀਆਂ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਤੋਂ ਨਹੀਂ ਰੋਕਦੀ, ਜੋ ਸਮੁੱਚੇ ਗੇਮਪਲੇ ਅਨੁਭਵ ਨੂੰ ਵਿਗਾੜਦਾ ਹੈ।

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

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

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
Array.fill() ਹਰ ਕਤਾਰ ਨੂੰ ਡਿਫੌਲਟ ਮੁੱਲਾਂ ਨਾਲ ਭਰ ਕੇ, ਗੇਮ ਲਈ ਗਰਿੱਡ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਕਨੈਕਟ ਫੋਰ ਗੇਮ ਵਿੱਚ, ਇਹ 2D ਗਰਿੱਡ ਢਾਂਚਾ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਸਾਰੇ ਸੈੱਲਾਂ ਨੂੰ 0 (ਖਾਲੀ) ਵਿੱਚ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
map() ਇੱਕ ਐਰੇ ਵਿੱਚ ਹਰੇਕ ਤੱਤ ਲਈ ਇੱਕ ਫੰਕਸ਼ਨ ਲਾਗੂ ਕਰਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ ਹਰੇਕ ਕਤਾਰ ਲਈ ਪਹਿਲਾਂ ਤੋਂ ਪਰਿਭਾਸ਼ਿਤ ਖਾਲੀ ਮੁੱਲਾਂ ਦੇ ਨਾਲ ਇੱਕ 2D ਐਰੇ (ਗੇਮ ਗਰਿੱਡ) ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਗਰਿੱਡ ਦੀ ਗਤੀਸ਼ੀਲ ਸ਼ੁਰੂਆਤ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
checkDiagonal() ਇੱਕ ਕਸਟਮ ਫੰਕਸ਼ਨ ਜੋ ਖਾਸ ਤੌਰ 'ਤੇ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਇੱਕ ਖਿਡਾਰੀ ਚਾਰ ਟੋਕਨਾਂ ਨੂੰ ਤਿਰਛੇ ਰੂਪ ਵਿੱਚ ਰੱਖ ਕੇ ਜਿੱਤ ਗਿਆ ਹੈ। ਇਹ ਗਰਿੱਡ ਵਿੱਚੋਂ ਲੰਘਦਾ ਹੈ ਅਤੇ ਵਿਕਰਣ ਜਿੱਤਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਦੋ ਦਿਸ਼ਾਵਾਂ (ਅੱਗੇ ਅਤੇ ਪਿੱਛੇ) ਵਿੱਚ ਜਾਂਚ ਕਰਦਾ ਹੈ।
index() ਇਹ jQuery ਕਮਾਂਡ ਇਸਦੇ ਮਾਤਾ-ਪਿਤਾ ਦੇ ਅੰਦਰ ਕਲਿੱਕ ਕੀਤੇ ਤੱਤ ਦੀ ਸਥਿਤੀ ਵਾਪਸ ਕਰਦੀ ਹੈ। ਇਹ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਕਾਲਮ ਨੰਬਰ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਿੱਥੇ ਇੱਕ ਖਿਡਾਰੀ ਨੇ ਕਲਿਕ ਕੀਤਾ ਹੈ, ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਗਰਿੱਡ ਵਿੱਚ ਟੋਕਨ ਕਿੱਥੇ ਰੱਖਣਾ ਹੈ।
removeClass() ਇਸ jQuery ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਹਰੇਕ ਗਰਿੱਡ ਸੈੱਲ (ਪਲੇਅਰ 1 ਜਾਂ ਪਲੇਅਰ2) 'ਤੇ ਲਾਗੂ ਕਲਾਸ ਨੂੰ ਹਟਾ ਕੇ ਗੇਮ ਬੋਰਡ ਨੂੰ ਰੀਸੈਟ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਜਦੋਂ ਕੋਈ ਨਵੀਂ ਗੇਮ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ ਤਾਂ ਬੋਰਡ ਵਿਜ਼ੂਲੀ ਰੀਸੈੱਟ ਹੁੰਦਾ ਹੈ।
fill(null) ਗੇਮ ਗਰਿੱਡ ਦੀ ਸ਼ੁਰੂਆਤ ਕਰਦੇ ਸਮੇਂ, ਇਸ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਹਰ ਐਰੇ (ਕਤਾਰ) ਨੂੰ ਨਲ ਮੁੱਲਾਂ ਨਾਲ ਭਰਨ ਲਈ ਹੋਰ ਸੋਧਾਂ ਲਈ ਤਿਆਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਪਰਿਭਾਸ਼ਿਤ ਐਰੇ ਤੱਤਾਂ ਨੂੰ ਰੋਕਦਾ ਹੈ ਅਤੇ ਇੱਕ ਸਾਫ਼ ਸਥਿਤੀ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।
for...of ਇਹ ਪਛਾਣ ਕਰਨ ਲਈ ਕਿ ਖਿਡਾਰੀ ਨੇ ਆਪਣਾ ਟੋਕਨ ਕਿੱਥੇ ਰੱਖਿਆ ਹੈ, ਗਰਿੱਡ ਕਤਾਰਾਂ ਅਤੇ ਕਾਲਮਾਂ ਵਿੱਚ ਲੂਪ ਕਰਦਾ ਹੈ। ਇਹ ਗਰਿੱਡ ਦੀ ਸਥਿਤੀ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਟੋਕਨਾਂ ਨੂੰ ਸਹੀ ਥਾਂ 'ਤੇ ਰੱਖਿਆ ਗਿਆ ਹੈ ਅਤੇ ਹਰੇਕ ਚਾਲ ਤੋਂ ਬਾਅਦ ਇੱਕ ਜੇਤੂ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।
resetGame() ਇਹ ਫੰਕਸ਼ਨ ਗੇਮ ਸਟੇਟ ਨੂੰ ਰੀਸੈਟ ਕਰਦਾ ਹੈ, ਗਰਿੱਡ ਨੂੰ ਸਾਫ਼ ਕਰਦਾ ਹੈ ਅਤੇ ਲਾਗੂ ਕੀਤੀਆਂ ਕਲਾਸਾਂ (ਪਲੇਅਰ ਟੋਕਨ) ਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਗੇਮ ਨੂੰ ਕਿਸੇ ਵੀ ਪਿਛਲੀ ਸਥਿਤੀ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖੇ ਬਿਨਾਂ ਸਕ੍ਰੈਚ ਤੋਂ ਦੁਬਾਰਾ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।
click() ਹਰੇਕ ਗੇਮ ਕਾਲਮ ਨਾਲ ਇੱਕ ਇਵੈਂਟ ਲਿਸਨਰ ਨੱਥੀ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਇੱਕ ਕਾਲਮ ਨੂੰ ਕਲਿੱਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਇੱਕ ਟੋਕਨ ਦੀ ਪਲੇਸਮੈਂਟ ਅਤੇ ਇੱਕ ਜੇਤੂ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਤਰਕ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ। ਇਹ ਗੇਮ ਵਿੱਚ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੇਂਦਰੀ ਹੈ।

JavaScript ਨਾਲ ਕਨੈਕਟ ਫੋਰ ਵਿੱਚ ਡਾਇਗਨਲ ਵਿਨ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਸਕ੍ਰਿਪਟ JavaScript ਨਾਲ ਬਣਾਈਆਂ ਕਨੈਕਟ ਫੋਰ ਗੇਮਾਂ ਵਿੱਚ ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਨਾਲ ਨਜਿੱਠਦੀ ਹੈ: ਇੱਕ ਵਿਕਰਣ ਜਿੱਤ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਅਸਫਲਤਾ। ਇਸ ਗੇਮ ਵਿੱਚ, ਗਰਿੱਡ ਨੂੰ ਇੱਕ 2D ਐਰੇ ਦੁਆਰਾ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ ਜਿੱਥੇ ਹਰੇਕ ਖਿਡਾਰੀ ਦੀ ਚਾਲ ਨੂੰ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਕੋਡ ਜਿੱਤਣ ਵਾਲੇ ਸੰਜੋਗਾਂ ਲਈ ਜਾਂਚ ਕਰਦਾ ਹੈ। ਇਸ ਹੱਲ ਵਿੱਚ ਮੁੱਖ ਫੰਕਸ਼ਨ ਹੈ ਜੇਤੂ ਚੈਕ ਫੰਕਸ਼ਨ, ਜੋ ਲੇਟਵੇਂ, ਲੰਬਕਾਰੀ ਅਤੇ ਤਿਰਛੇ ਤੌਰ 'ਤੇ ਜਿੱਤਾਂ ਦਾ ਪਤਾ ਲਗਾਉਂਦਾ ਹੈ। ਵਿਕਰਣ ਖੋਜ ਨੂੰ ਨੇਸਟਡ ਲੂਪਾਂ ਦੁਆਰਾ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ ਜੋ ਅੱਗੇ ਜਾਂ ਪਿੱਛੇ ਵਾਲੇ ਵਿਕਰਣ ਵਿੱਚ ਰੱਖੇ ਗਏ ਲਗਾਤਾਰ ਚਾਰ ਟੁਕੜਿਆਂ ਲਈ ਗਰਿੱਡ ਨੂੰ ਸਕੈਨ ਕਰਦੇ ਹਨ।

ਕੋਡ ਵੀ ਇੱਕ ਅਨੁਕੂਲਿਤ ਵਰਤਦਾ ਹੈ Array.fill() ਗਰਿੱਡ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਦਾ ਤਰੀਕਾ। ਇਹ ਸਾਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲਾਂ ਦੇ ਨਾਲ ਕੁਸ਼ਲਤਾ ਨਾਲ ਇੱਕ 2D ਐਰੇ ਸਥਾਪਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਦੀ ਵਰਤੋਂ ਨਕਸ਼ਾ() ਫੰਕਸ਼ਨ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਗਰਿੱਡ ਵਿੱਚ ਹਰੇਕ ਕਤਾਰ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਗੇਮ ਬੋਰਡ ਦੀ ਰਚਨਾ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ। ਖਿਡਾਰੀਆਂ ਵਿਚਕਾਰ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਦਾ ਤਰਕ ਸਿੱਧਾ ਹੈ: ਹਰੇਕ ਚਾਲ ਤੋਂ ਬਾਅਦ, ਪਲੇਅਰ 1 ਅਤੇ ਪਲੇਅਰ 2 ਵਿਚਕਾਰ ਵਾਰੀ ਬਦਲੀ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਸਕ੍ਰਿਪਟ ਗਰਿੱਡ ਵਿੱਚ ਹਰੇਕ ਖਿਡਾਰੀ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਨੂੰ ਟਰੈਕ ਕਰਦੀ ਹੈ। ਦ boardMsg ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਗੇਮ ਇੰਟਰਫੇਸ ਵਿੱਚ ਸੁਨੇਹੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਕੇ, ਖਿਡਾਰੀਆਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਵਾਰੀ ਵਿੱਚ ਮਾਰਗਦਰਸ਼ਨ ਕਰਕੇ ਗੇਮ ਸਥਿਤੀ ਨੂੰ ਅਪਡੇਟ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

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

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

JavaScript ਕਨੈਕਟ ਫੋਰ ਗੇਮ ਵਿੱਚ ਡਾਇਗਨਲ ਵਿਨ ਡਿਟੈਕਸ਼ਨ ਨੂੰ ਫਿਕਸ ਕਰਨਾ

ਪਹੁੰਚ 1: ਅਨੁਕੂਲਿਤ ਵਿਕਰਣ ਜਾਂਚਾਂ ਅਤੇ ਯੂਨਿਟ ਟੈਸਟਾਂ ਦੇ ਨਾਲ ਮਾਡਯੂਲਰ JavaScript

// Initialize variables for player names, grid, and winner statusvar player1Name = "", player2Name = "", turn = "";
var grid = Array(6).fill(null).map(() => Array(7).fill(0));
var hasWinner = 0, moveCount = 0;

// Function to display messages
function boardMsg(msg) {
  $("#message_area").text(msg);
}

// Function to check diagonal (both directions)
function checkDiagonal(player) {
  // Loop through grid to check diagonal forward
  for (let i = 0; i <= 2; i++) {
    for (let j = 0; j <= 3; j++) {
      if (grid[i][j] === player && grid[i+1][j+1] === player &&
          grid[i+2][j+2] === player && grid[i+3][j+3] === player) {
        return true;
      }
    }
  }
  // Check diagonal backward
  for (let i = 0; i <= 2; i++) {
    for (let j = 3; j <= 6; j++) {
      if (grid[i][j] === player && grid[i+1][j-1] === player &&
          grid[i+2][j-2] === player && grid[i+3][j-3] === player) {
        return true;
      }
    }
  }
  return false;
}

// Function to validate a winner
function winnerCheck(player) {
  return checkDiagonal(player) || checkHorizontal(player) || checkVertical(player);
}

// Unit test for diagonal checking
function testDiagonalWin() {
  grid = [
    [0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 1, 0, 0, 0],
    [0, 0, 1, 0, 0, 0, 0],
    [0, 1, 0, 0, 0, 0, 0],
    [1, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0]
  ];
  return winnerCheck(1) === true ? "Test Passed" : "Test Failed";
}

Solving Diagonal Issues in Connect Four: Another Method

Approach 2: Optimizing jQuery DOM manipulation for better diagonal win detection

$(document).ready(function() {
  var playerTurn = 1;
  var grid = Array(6).fill(null).map(() => Array(7).fill(0));

  $(".col").click(function() {
    var col = $(this).index();
    for (let row = 5; row >= 0; row--) {
      if (grid[row][col] === 0) {
        grid[row][col] = playerTurn;
        $(this).addClass(playerTurn === 1 ? "player1" : "player2");
        if (checkDiagonal(playerTurn)) {
          alert("Player " + playerTurn + " wins diagonally!");
          resetGame();
        }
        playerTurn = playerTurn === 1 ? 2 : 1;
        break;
      }
    }
  });

  function resetGame() {
    grid = Array(6).fill(null).map(() => Array(7).fill(0));
    $(".col").removeClass("player1 player2");
  }
});

ਕਨੈਕਟ ਚਾਰ ਲਈ JavaScript ਤਰਕ ਨੂੰ ਵਧਾਉਣਾ: ਡਾਇਗਨਲ ਵਿਨ ਡਿਟੈਕਸ਼ਨ

JavaScript ਵਿੱਚ ਇੱਕ ਕਨੈਕਟ ਫੋਰ ਗੇਮ 'ਤੇ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਇੱਕ ਨਾਜ਼ੁਕ ਪਹਿਲੂ ਜਿਸ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਉਹ ਵਿਕਰਣ ਜਿੱਤ ਦੀ ਸਥਿਤੀ ਨੂੰ ਸੰਭਾਲ ਰਿਹਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਜਦੋਂ ਕੋਈ ਖਿਡਾਰੀ ਲਗਾਤਾਰ ਚਾਰ ਟੋਕਨਾਂ ਨਾਲ ਜਿੱਤਦਾ ਹੈ ਤਾਂ ਗੇਮ ਸਹੀ ਢੰਗ ਨਾਲ ਪਤਾ ਲਗਾਉਂਦੀ ਹੈ, ਹਰੀਜੱਟਲੀ ਜਾਂ ਵਰਟੀਕਲ ਜਿੱਤਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਜਟਿਲਤਾ ਜੋੜਦੀ ਹੈ। ਇਸ ਸੰਦਰਭ ਵਿੱਚ, ਸਾਨੂੰ ਗਰਿੱਡ ਨੂੰ ਦੋਨਾਂ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਲੂਪ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ - ਉੱਪਰ-ਖੱਬੇ ਤੋਂ ਹੇਠਾਂ-ਸੱਜੇ ਅਤੇ ਉੱਪਰ-ਸੱਜੇ ਤੋਂ ਹੇਠਾਂ-ਖੱਬੇ। ਕੋਡ ਨੂੰ ਗਰਿੱਡ ਵਿੱਚ ਹਰੇਕ ਸੈੱਲ ਦੀ ਜਾਂਚ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਗੁਆਂਢੀ ਵਿਕਰਣ ਸੈੱਲ ਮੌਜੂਦਾ ਖਿਡਾਰੀ ਦੇ ਟੋਕਨ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ।

ਇੱਕ ਵਿਕਰਣ ਜਿੱਤ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀਆਂ ਮੂਲ ਗੱਲਾਂ ਤੋਂ ਪਰੇ, ਇੱਕ ਹੋਰ ਜ਼ਰੂਰੀ ਵਿਚਾਰ ਹੈ ਕੋਡ ਮਾਡਿਊਲਰਿਟੀ. ਵੱਖਰੇ ਫੰਕਸ਼ਨ ਬਣਾਉਣਾ, ਜਿਵੇਂ ਕਿ checkDiagonal ਫੰਕਸ਼ਨ, ਕੋਡ ਨੂੰ ਪੜ੍ਹਨਯੋਗ ਅਤੇ ਸਾਂਭਣਯੋਗ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਫੰਕਸ਼ਨਾਂ ਨਾਲ ਗੇਮ ਦੀ ਰੀਸੈਟ ਸਥਿਤੀ ਨੂੰ ਸੰਭਾਲਣਾ resetGame ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਹਰੇਕ ਦੌਰ ਦੇ ਬਾਅਦ ਗਰਿੱਡ ਸਾਫ਼ ਹੋ ਗਿਆ ਹੈ, ਇੱਕ ਸਹਿਜ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਅਭਿਆਸ ਖਾਸ ਕਾਰਜਕੁਸ਼ਲਤਾਵਾਂ ਨੂੰ ਅਲੱਗ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਇਸਲਈ ਭਵਿੱਖ ਦੇ ਅੱਪਡੇਟ ਜਾਂ ਬੱਗ ਫਿਕਸ ਕੋਡ ਦੇ ਗੈਰ-ਸੰਬੰਧਿਤ ਹਿੱਸਿਆਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਨਹੀਂ ਕਰਦੇ ਹਨ।

DOM ਹੇਰਾਫੇਰੀ ਲਈ jQuery ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਗਰਿੱਡ ਅਤੇ ਗੇਮ ਤਰਕ ਵਿਚਕਾਰ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਨੂੰ ਸਰਲ ਬਣਾਉਣ ਦਾ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਤਰੀਕਾ ਹੈ। ਦੇ ਨਾਲ click ਇਵੈਂਟ ਹੈਂਡਲਰ, ਪਲੇਅਰ ਇੰਟਰੈਕਸ਼ਨਾਂ ਨੂੰ ਕੈਪਚਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਗੇਮ ਤਰਕ ਨੂੰ ਉਸ ਅਨੁਸਾਰ ਅਪਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। jQuery ਦੀ ਲਚਕਤਾ ਤੁਹਾਨੂੰ ਕਲਾਸਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅਪਡੇਟ ਕਰਨ, ਐਲੀਮੈਂਟਸ ਨੂੰ ਰੀਸੈਟ ਕਰਨ, ਅਤੇ ਪੇਜ ਨੂੰ ਰੀਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਤੋਂ ਬਿਨਾਂ ਗੇਮ ਬੋਰਡ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ, ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਸੁਧਾਰ ਨਾ ਸਿਰਫ ਗੇਮ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦੇ ਹਨ ਬਲਕਿ ਇਹ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ ਕਿ ਕੋਡ ਨੂੰ ਭਵਿੱਖ ਵਿੱਚ ਸੋਧਾਂ ਲਈ ਅਨੁਕੂਲ ਬਣਾਇਆ ਗਿਆ ਹੈ।

JavaScript Connect Four ਬਾਰੇ ਆਮ ਤੌਰ 'ਤੇ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ

  1. ਮੈਂ ਕਨੈਕਟ ਫੋਰ ਗੇਮ ਵਿੱਚ ਵਿਕਰਣ ਜਿੱਤ ਦੀ ਜਾਂਚ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾ ਸਕਦਾ ਹਾਂ?
  2. ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ for ਲੂਪ ਕਰੋ ਅਤੇ ਅਜਿਹੀਆਂ ਸਥਿਤੀਆਂ ਜੋੜੋ ਜੋ ਸੈੱਲਾਂ ਨੂੰ ਤਿਰਛੇ ਤੌਰ 'ਤੇ ਦੋਵਾਂ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਜਾਂਚਦੀਆਂ ਹਨ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀਆਂ ਹਨ ਕਿ ਹਰੇਕ ਜਾਂਚ ਗਰਿੱਡ ਦੇ ਅੰਦਰ ਇੱਕ ਵੈਧ ਸ਼ੁਰੂਆਤੀ ਬਿੰਦੂ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ।
  3. ਗੇਮ ਤਰਕ ਵਿੱਚ ਮਾਡਿਊਲਰ ਫੰਕਸ਼ਨਾਂ ਦਾ ਕੀ ਮਹੱਤਵ ਹੈ?
  4. ਮਾਡਿਊਲਰ ਫੰਕਸ਼ਨ ਜਿਵੇਂ checkDiagonal ਅਤੇ winnerCheck ਕੋਡ ਨੂੰ ਵਿਵਸਥਿਤ ਰੱਖੋ, ਜਿਸ ਨਾਲ ਪੂਰੀ ਗੇਮ ਨੂੰ ਤੋੜੇ ਬਿਨਾਂ ਵਿਅਕਤੀਗਤ ਭਾਗਾਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨਾ ਅਤੇ ਅੱਪਡੇਟ ਕਰਨਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।
  5. ਮੈਂ JavaScript ਵਿੱਚ ਗੇਮ ਸਟੇਟ ਨੂੰ ਕਿਵੇਂ ਰੀਸੈਟ ਕਰਾਂ?
  6. ਦੀ ਵਰਤੋਂ ਕਰੋ resetGame ਗਰਿੱਡ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਅਤੇ ਗਰਿੱਡ ਤੱਤਾਂ ਤੋਂ ਸਾਰੀਆਂ ਪਲੇਅਰ-ਵਿਸ਼ੇਸ਼ ਕਲਾਸਾਂ ਨੂੰ ਹਟਾਉਣ ਲਈ ਫੰਕਸ਼ਨ। ਇਹ ਤੁਹਾਨੂੰ ਗੇਮ ਨੂੰ ਸਾਫ਼-ਸੁਥਰਾ ਰੀਸਟਾਰਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
  7. ਕੀ ਕਰਦਾ ਹੈ Array.fill() ਹੁਕਮ ਇਸ ਸੰਦਰਭ ਵਿੱਚ ਕਰਦੇ ਹਨ?
  8. Array.fill() ਖਾਲੀ ਸੈੱਲਾਂ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਡਿਫੌਲਟ ਮੁੱਲਾਂ (ਜ਼ੀਰੋ) ਨਾਲ ਗਰਿੱਡ ਨੂੰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। ਇਹ ਤਰੀਕਾ ਗੇਮ ਦੀ ਸ਼ੁਰੂਆਤ 'ਤੇ ਜਾਂ ਰੀਸੈਟ ਤੋਂ ਬਾਅਦ ਖਾਲੀ ਗੇਮ ਬੋਰਡ ਬਣਾਉਣ ਲਈ ਕੁਸ਼ਲ ਹੈ।
  9. ਕਨੈਕਟ ਫੋਰ ਗੇਮ ਵਿੱਚ jQuery ਦੀ ਵਰਤੋਂ ਕਿਉਂ ਕਰੀਏ?
  10. jQuery ਇਵੈਂਟਾਂ ਨੂੰ ਸੰਭਾਲਣ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ ਜਿਵੇਂ ਕਿ click ਅਤੇ DOM ਹੇਰਾਫੇਰੀ, ਗੇਮ ਬੋਰਡ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅਪਡੇਟ ਕਰਨਾ ਅਤੇ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨਾਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਕਰਨਾ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ।

ਡਾਇਗਨਲ ਵਿਨ ਡਿਟੈਕਸ਼ਨ ਨੂੰ ਵਧਾਉਣ 'ਤੇ ਅੰਤਿਮ ਵਿਚਾਰ

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

ਇਸ ਤੋਂ ਇਲਾਵਾ, ਹਰੇਕ ਜਿੱਤ ਦੀ ਸਥਿਤੀ ਲਈ ਵੱਖਰੇ ਫੰਕਸ਼ਨਾਂ ਦੇ ਨਾਲ ਸਾਫ਼ ਅਤੇ ਮਾਡਯੂਲਰ ਕੋਡ ਨੂੰ ਬਣਾਈ ਰੱਖਣਾ ਤਰਕ ਨੂੰ ਡੀਬੱਗ ਕਰਨਾ ਅਤੇ ਅਪਡੇਟ ਕਰਨਾ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਸੁਧਾਰ ਨਾ ਸਿਰਫ ਗੇਮਪਲੇ ਨੂੰ ਵਧਾਉਂਦੇ ਹਨ ਬਲਕਿ ਭਵਿੱਖ ਦੇ ਅਪਡੇਟਾਂ ਲਈ ਗੇਮ ਦੀ ਮਾਪਯੋਗਤਾ ਅਤੇ ਲਚਕਤਾ ਨੂੰ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ।

ਕਨੈਕਟ ਫੋਰ ਵਿੱਚ ਡਾਇਗਨਲ ਵਿਨ ਡਿਟੈਕਸ਼ਨ ਲਈ ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
  1. ਇਹ ਲੇਖ JavaScript ਐਰੇ ਅਤੇ ਗੇਮ ਤਰਕ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਗਾਈਡਾਂ ਦਾ ਹਵਾਲਾ ਦਿੰਦਾ ਹੈ MDN ਵੈੱਬ ਡੌਕਸ , ਖਾਸ ਤੌਰ 'ਤੇ ਐਰੇ ਤਰੀਕਿਆਂ 'ਤੇ ਫੋਕਸ ਕਰਨਾ ਜਿਵੇਂ ਕਿ Array.fill() ਅਤੇ map() ਖੇਡ ਵਿਕਾਸ ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ ਹੈ.
  2. ਇੱਕ ਹੋਰ ਸਰੋਤ ਵਿੱਚ ਟਿਊਟੋਰਿਅਲ ਸ਼ਾਮਲ ਹਨ jQuery , ਜੋ ਕਿ ਇਸ ਕਨੈਕਟ ਫੋਰ ਗੇਮ ਵਿੱਚ DOM ਹੇਰਾਫੇਰੀ, ਇਵੈਂਟ ਟਰਿਗਰਸ, ਅਤੇ ਡਾਇਨਾਮਿਕ ਗਰਿੱਡ ਪ੍ਰਬੰਧਨ ਲਈ ਵਰਤਿਆ ਗਿਆ ਸੀ।
  3. ਐਡਵਾਂਸਡ ਡਾਇਗਨਲ ਵਿਨ ਤਰਕ ਲਈ, ਲੇਖ ਨੇ ਇਸ ਤੋਂ ਹਵਾਲੇ ਵਰਤੇ ਹਨ GeeksforGeeks , ਜੋ ਕਿ ਵੱਖ-ਵੱਖ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਵਿਕਰਣ ਜਿੱਤ ਖੋਜ ਰਣਨੀਤੀਆਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਸਮਝ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।