कंप्यूटर साइंस पर आधारित गेम ‘Turing Complete’
(turingcomplete.game)- Turing Complete एक ऐसा गेम है जो खुद समस्याएँ हल करते हुए कंप्यूटर साइंस की अवधारणाओं को गहराई से समझने के अनुभव पर केंद्रित है
- सीखना logic gates से शुरू होता है, जहाँ केवल nand gate से दूसरे gates बनाने का तरीका अपनाया जाता है
- इसके बाद memory और components को जोड़ते हुए सरल circuits को वास्तविक कंप्यूटर आर्किटेक्चर के करीब रूप में विस्तार दिया जाता है
- खिलाड़ी द्वारा बनाया गया कंप्यूटर Turing complete बनने का लक्ष्य रखता है, जिसका अर्थ है ऐसी संरचना जो Turing machine जैसे algorithms की गणना कर सके
- अपने बनाए hardware पर assembly instructions तैयार किए जाते हैं और binary code आधारित programming puzzles हल किए जाते हैं
गेम के जरिए कंप्यूटर साइंस सीखने का तरीका
- Turing Complete कंप्यूटर साइंस को विषय बनाकर बनाया गया गेम है
- यह उन लोगों के लिए है जिन्हें किसी समस्या का हल खोजने का आनंद पसंद है, और जो उन अवधारणाओं को भी और गहराई से देखना पसंद करते हैं जिन्हें वे पहले से समझते हैं
- Steam पर Play Turing Complete के रूप में उपलब्ध है
circuits से कंप्यूटर आर्किटेक्चर तक सीखने का प्रवाह
-
logic gates
- logic gates गणना के मूल building blocks हैं
- केवल एक nand gate से बाकी gates बनाते हुए circuit की बुनियाद सीखी जाती है
-
components और memory
- logic gates के ऊपर memory जोड़कर अधिक जटिल components बनाए जा सकते हैं
- इस तरह बने building blocks को जोड़कर वास्तविक कंप्यूटर आर्किटेक्चर तक विस्तार किया जाता है
-
architecture
- खुद assemble किया गया कंप्यूटर Turing complete बनने का लक्ष्य रखता है
- इसका मतलब ऐसे कंप्यूटर से है जो Turing machine जैसे algorithms की गणना कर सके
-
assembly
- कंप्यूटर को binary code से program किया जाता है
- इस प्रक्रिया को सरल बनाने के लिए assembly instructions बनाए जाते हैं, और अपने बनाए hardware पर programming puzzles हल किए जाते हैं
1 टिप्पणियां
Hacker News की राय
मैं ऐसा सीधा-सादा इंसान हूँ कि HN पर Turing Complete दिख जाए तो उसके पक्ष में कमेंट कर देता हूँ :)
मैंने इसे कुछ साल पहले खरीदा था और कुछ लेवल खेले थे, फिर मेरा बेटा, जो उस समय 14 साल का था, गर्मियों की छुट्टियों में इसे खेलता रहा और मैं बीच-बीच में उसकी मदद करता था। आख़िरी लेवल में उसने गेम में सिखाई गई pseudo-assembly भाषा में प्रोग्राम लिखा, और logic gates से खुद बनाया हुआ कंप्यूटर right-hand rule का इस्तेमाल करते हुए एक random maze से निकल गया। यह गेम सच में शानदार है
बस एक ही शिकायत है कि मेरी उस उम्र में ऐसा कोई मिलता-जुलता गेम भी नहीं था
लेकिन memory आने वाले लेवल्स में मैं बार-बार अटक जाता हूँ, शायद मेरा दिमाग next/previous tick की अवधारणा को ठीक से नहीं पकड़ पाता। फिर भी ऑनलाइन hints और पूरे solutions बहुत हैं, इसलिए ज़रूरत पड़े तो solution डालकर अगले लेवल पर बढ़ सकते हैं
गेम खुद 1 साल से भी पहले लगभग पूरा हो चुका था, और डेवलपर performance सुधारने और ज़्यादा जटिल CPU वगैरह बनाने लायक बनाने के लिए पूरे सिस्टम को फिर से implement कर रहा है। बस उम्मीद है कि update जारी करते समय कुछ टूटे नहीं
ज़ोरदार सिफारिश करता हूँ
[0] https://en.wikipedia.org/wiki/Rocky%27s_Boots
मैंने यह किया था:
Mux(a=out, b=in, sel=load, out=muxOut)
DFF(in=muxOut, out=DFFOut)
आख़िरी लाइन ऐसी होनी चाहिए थी:
DFF(in=muxOut, out=DFFOut, out=out)
फिर भी Turing Complete, NAND to Tetris का एकदम सही साथी लगता है। बस लगता है यह केवल Steam पर मिलता है, इसलिए अच्छा होता अगर इसे अलग से भी खरीदा जा सकता
मुझे इस genre के गेम बहुत पसंद हैं, इसलिए Steam पर इस तरह के गेम्स का मेरा collection धीरे-धीरे बढ़ रहा है। nandgame जैसे कुछ Steam पर नहीं भी हैं
Turing Complete उनमें बेहतर गेम्स में से है, simulation स्थिर लगता है, और शुरुआती early access अवधि की restructuring के बाद missions भी काफ़ी अच्छे बने हैं
लेकिन UI हमेशा smooth नहीं है, और guidance भी कम है, इसलिए यह उन लोगों के लिए ज़्यादा उपयुक्त है जिन्होंने पहले किसी दूसरे simulator में ऐसा कुछ किया हो
अगर आप ऐसे मिलते-जुलते गेम की तलाश में हैं जो concepts को ज़्यादा अच्छी तरह समझाता हो, तो मैं Silicon Zeroes की सिफारिश करूँगा। कुल मिलाकर वह थोड़ा कम polished लगता है, लेकिन उसमें प्यारी-सी story structure है, हर level क्या introduce करना चाहता है यह ज़्यादा अच्छे से समझाता है, और खासकर clock से जुड़ी समस्याओं को संभालने में कहीं बेहतर है
अगर आपको electronic circuits की तुलना में pseudo-assembly वाला हिस्सा ज़्यादा पसंद है, तो TIS100 या Shenzhen I/O बेहतर रहेंगे
अगर आपको अच्छी तरह बने puzzles पसंद हैं, तो Human Resource Machine शायद ज़्यादा पसंद आए
Turing Complete के बारे में यह अपडेट भी देखने लायक है: https://steamcommunity.com/app/1444480/eventcomments/3806156...
1 साल तक कोई update नहीं आया, फिर अगस्त 2023 में “माफ़ कीजिए, जल्द ही बड़ा नया update आ रहा है!” जैसा संदेश पोस्ट हुआ, और उसके बाद फिर से चुप्पी है
लगता है डेवलपर एक बहुत बड़े massive rewrite में फँस गया है, जो उम्मीद से कहीं ज़्यादा समय ले रहा है
मैं early access से बाहर आने पर इसे फिर से खेलने का इंतज़ार कर रहा था, लेकिन डर है कि कहीं यह इंतज़ार हमेशा का न हो जाए
digital computing में abstraction का फ़ायदा होता है। logic gates के बारे में सोचने के लिए Ohm's law जानना ज़रूरी नहीं
analog computing में जाते ही आपको गणित सिखाने का कोई तरीका ज़रूर ढूँढ़ना पड़ेगा। operations अब boolean नहीं रह जाते, बल्कि कई electrical equations के मेल बन जाते हैं। भले गणित सरल हो, फिर भी यह सामान्य programming games की भावना से अलग है
फिर भी जानना चाहता हूँ कि क्या यह दिलचस्प लगता है, और क्या लोग इसे खेलना चाहेंगे
https://store.steampowered.com/app/2124440/SIC1/
Human Resource Machine में मैंने शायद शुरुआती कुछ challenges ही खेले थे। puzzles बहुत आसान लगे और उन्हें हल करने की प्रक्रिया भी ख़ास मुश्किल नहीं थी, इसलिए मैं आगे तक नहीं गया
मैंने भी अभी Steam winter sale के दौरान इसे खरीदा है
concept शानदार है, लेकिन सही मायने में एक अच्छा game या स्वतंत्र educational tool बनने के लिए इसे अभी बहुत ज़्यादा polish की ज़रूरत है
जिन लोगों के पास पहले से संबंधित ज्ञान है, उनके लिए यह ठीक है, लेकिन beginners के लिए यह काफ़ी frustrate करने वाला अनुभव हो सकता है, क्योंकि यह लगभग बिना guidance, education या preparation के सीधे problems सामने रख देता है
circuit layout में मदद करने वाली सुविधा भी होनी चाहिए। किसी component को move या rotate करते ही wiring टूट जाती है, और फिर हर wire को हाथ से दोबारा खींचना पड़ता है। सही logic समझ लेने के बाद भी implementation में काफ़ी friction है
यह गेम मैंने सच में बहुत मज़े से खेला था और आज भी मज़ेदार लगता है। इसे एक बार में लंबे समय तक खेलना सबसे अच्छा रहता है
Factorio की तरह, अगर लंबे ब्रेक के बाद वापस लौटो तो कई बार वहीं से जारी रखने के बजाय नया शुरू करना ज़्यादा मज़ेदार होता है। या फिर बस अंतिम चरण के sandbox में बने रह सकते हैं
UI को थोड़ा और निखारा जा सकता है, और पिछले कुछ वर्षों से एक बड़ा performance rework चल रहा है जो अभी तक रिलीज़ नहीं हुआ है। आजकल इसमें Verilog export भी है, लेकिन मैंने उसे ठीक से इस्तेमाल नहीं किया है
बाद के चरणों में unlock होने वाले अतिरिक्त parts sandbox को सच में बहुत मज़ेदार बना देते हैं। एक score system भी है, जो competitive element जोड़ता है, लेकिन यह आपके पहले computer से काफी आगे बढ़ने के बाद unlock होता है
मध्य उम्र में computer science की degree करने का फैसला लेने से पहले मैंने यह गेम बहुत खेला था, और इसकी वजह से बुनियादी architecture वाला हिस्सा बहुत आसान लगा। मज़ेदार revision के लिए भी इसकी ज़ोरदार सिफारिश करता हूँ
यहाँ “मज़ा” से मतलब एक दोस्ताना माहौल में Boolean logic के साथ हाथ आज़माने का मज़ा है, इसलिए अगर यह विचार ही पसंद नहीं है तो यह “game” भी आपके लिए नहीं होगा
हम इसे कंपनी में भी वास्तव में इस्तेमाल करते हैं और मैं इसकी ज़ोरदार सिफारिश करता हूँ
लगभग एक साल पहले मैंने एक सहकर्मी के साथ खाली समय में इसे अंत तक खेलकर देखा था और यह मुझे बहुत पसंद आया। मुझे लगा कि यह electrical engineering apprentices के लिए बिल्कुल उपयुक्त होगा, क्योंकि training course में gates, registers, shift registers, counters जैसी digital logic अवधारणाएँ तो पढ़ाई जाती हैं, लेकिन इन्हें किसी व्यावहारिक project में लागू करने के मौके बहुत कम मिलते हैं
इसके अलावा, समय की पाबंदी के कारण assembly programming जैसे संबंधित विषय अब पहले की तरह अच्छी तरह नहीं पढ़ाए जाते
बाहर से थोड़ी अतिरिक्त guidance मिल जाए तो यह गेम लोगों को digital logic components के काम करने का तरीका समझने और खुद उनके साथ प्रयोग करने के लिए प्रेरित करने में सच में बहुत मदद करता है। यह शानदार है कि आप simple assembly language लिखने और उससे puzzles हल करने वाले चरण तक पहुँच सकते हैं, और छात्रों के लिए भी यह बहुत प्रेरक है
जब मैंने पहली बार पेज खोला तो यह Sebastian Lague के Digital Logic Sim [1] की नकल जैसा लगा, लेकिन वीडियो देखकर लगा कि यह वास्तव में उससे कहीं ज़्यादा गहराई में जाता है, जो प्रभावशाली था। इसलिए मैंने इसे खरीद लिया। उम्मीद है कि जल्द ही इसे आज़माने का समय मिलेगा
1: https://sebastian.itch.io/digital-logic-sim
इस गेम की तुलना आसानी से computer engineering fundamentals के एक semester से की जा सकती है, लेकिन खासकर assembly minigame की वजह से यह और ज़्यादा मज़ेदार लगा
विश्वविद्यालय में virtual CPU के लिए एक खास instruction set डिज़ाइन करने का assignment और एक खास circuit डिज़ाइन करने का assignment अलग-अलग थे, लेकिन वे पूर्ण या काम करने वाले designs नहीं थे
Turing Complete में आप एक पूरा छोटा CPU बनाते हुए अपना खुद का instruction set architecture बना सकते हैं, और जितनी गहराई तक चाहें जा सकते हैं, इसलिए यह मज़ेदार लगा
इसी तरह का गेम: https://nandgame.com/
लेकिन Turing Complete, nand game की तुलना में ज़्यादा गहरा लगता है
मैंने यह गेम खरीदा और इसे एक कला-कृति मानता हूँ
मैं computer science major नहीं था, लेकिन लगभग 15 साल से developer के रूप में काम कर रहा हूँ। गेम में मौजूद बहुत-सी चीज़ें मैं अमूर्त रूप में जानता था या Arduino boards, छोटे side projects वगैरह के ज़रिए छूकर देख चुका था
लेकिन यह सच में वही hands-on curriculum है जिसकी computer के साथ छेड़छाड़ करना पसंद करने वाले लोग लंबे समय से इच्छा रखते रहे हैं
Exapunks(https://www.zachtronics.com/exapunks/) में भी दिलचस्पी हो सकती है। इसने मुझे विश्वविद्यालय की कक्षाओं से बेहतर assembly सिखाई