← सभी पाठ

छोटे प्रोग्राम बनाएँ · 30 में पाठ 28 · लगभग 18 मिनट

छोटा लक्ष्य खेल

संग्रहित स्थिति और स्कोर वाला तीन-चक्र खेल बनाएँ।

01 / समझाएँ

विचार समझें

खेल नियम, इनपुट, स्थिति और प्रतिक्रिया वाला प्रोग्राम है। मेमोरी 200 लक्ष्य संख्या रखती है। तीन चक्रों में खिलाड़ी अनुमान देता है और बराबरी पर एक अंक कमाता है। स्कोर केवल सही अनुमान पर बदलता है।

खेल के नियम वर्तमान लक्ष्य और अनुमानों से अलग रखें। जाँच दोनों बदलती है। यह छोटा खेल संख्यात्मक अंतिम स्कोर छापता है; इसमें यादृच्छिकता, नेटवर्क, खाता या गुप्त छात्र डेटा नहीं है। VM से पाठ या चित्र छपने का दावा किए बिना भी खेल रुचिकर हो सकता है।

02 / आज़माएँ

होते हुए देखें

अनुमान 5, 2, 5 कतार में डालें। आउटपुट और मेमोरी 201 दोनों में अंतिम स्कोर 2 है।

STORE 5 200
LOAD [200] R1
LOAD 0 R2
LOOP 3
INPUT
CMP R1
JUMP_IF_ZERO hit
JUMP next
hit: LOAD R2
ADD 1
COPY R0 R2
next: NOP
RETURN
LOAD R2
STORE 201
PRINT
HALT

एक समय में एक निर्देश के लिए एक कदम लें। उदाहरण बदलकर फिर चला सकते हैं।

03 / चुनौती

इसे काम करने दें

मेमोरी 200 में लक्ष्य बाइट है। ठीक तीन अनुमान पढ़ें। लक्ष्य से बराबर अनुमानों की संख्या गिनें, स्कोर मेमोरी 201 में रखें और एक बार छापें।

जाँचक संपादक के वर्तमान प्रोग्राम को हर 4 मामले के लिए नई मशीन में चलाता है। वह इनपुट और मेमोरी खुद देता है; प्रयोगशाला का वर्तमान आउटपुट और मेमोरी परिणाम तय नहीं करते।

LOAD [200] R1
LOAD 0 R2
LOOP 3
INPUT
CMP R1
#
RETURN
LOAD R2
STORE 201
PRINT
HALT
संकेत चाहिए?

चूक वाला रास्ता स्कोर बढ़ाना छोड़े, लेकिन लूप के RETURN पर पहुँचे।

हल किया समाधान दिखाएँ

प्रोग्राम पढ़ें, हर निर्देश का असर अनुमान करें, फिर प्रयोगशाला में एक-एक कदम चलाएँ।

LOAD [200] R1
LOAD 0 R2
LOOP 3
INPUT
CMP R1
JUMP_IF_ZERO hit
JUMP next
hit: LOAD R2
ADD 1
COPY R0 R2
next: NOP
RETURN
LOAD R2
STORE 201
PRINT
HALT

इमोजी CPU प्रयोगशाला

तैयार · 0 चक्र

इमोजी प्रोग्राम

LOAD, ADD या दूसरा निर्देश नाम लिखकर Space दबाएँ ताकि इमोजी जुड़े। Ctrl/⌘ + Enter चलाता/रोकता है; Escape रोकता है; Ctrl/⌘ + ] इंडेंट करता है। Tab फोकस बदलता है। लेबल कोलन लेते हैं। जंप शून्य-आधारित निर्देश पते लेते हैं।

निर्देश मानचित्र और ब्रेकपॉइंट (0)

ब्रेकपॉइंट निर्देश से पहले रोकते हैं। चलाएँ रुके ब्रेकपॉइंट के पार एक बार बढ़ता है; एक कदम सीधे निर्देश चलाता है। स्रोत बदलने से पुराने ब्रेकपॉइंट और मशीन स्थिति साफ़ होते हैं।

    CPU रजिस्टर

    R0
    0
    R1
    0
    R2
    0
    R3
    0
    R4
    0
    R5
    0
    R6
    0
    R7
    0
    प्रोग्राम काउंटर (PC)
    0
    स्टैक संकेतक (SP)
    255
    फ्लैग
    शून्य: निष्क्रिय · ऋणात्मक: निष्क्रिय · ओवरफ़्लो: निष्क्रिय
    विलंब अनुरोध
    0 ms
    स्टैक और लूप फ़्रेम

    SP = 255 − डेटा गहराई − कॉल गहराई। स्टैक मेमोरी से अलग है।

    डेटा स्टैक (नीचे → ऊपर)

    खाली

    कॉल वापसी पते (नीचे → ऊपर)

    खाली

    लूप फ़्रेम

    खाली

    आउटपुट और इनपुट

    आउटपुट देखने के लिए PRINT चलाएँ।

    कतार का इनपुट: खाली

    मेमोरी · 256 बाइट · 0 गैर-शून्य

    हर खाना पता:मान दिखाता है। R = इस कदम में पढ़ा; W = इस कदम में लिखा। जाँचने या निष्पादन से पहले मान रखने के लिए खाना चुनें। तीर कुंजियों से चलें, पंक्ति के लिए Home/End और पूरी मेमोरी के लिए Ctrl/⌘ + Home/End लें।

    मेमोरी मान रखने से पहले रीसेट करें। संग्रहित मान 0–255 में लपेटते हैं।
    निष्पादन रिकॉर्ड · 0 प्रविष्टियाँ

    हाल की प्रविष्टियाँ नीचे हैं। अलग पूर्ण पहले/बाद की स्थिति के लिए कोई भी शून्य-आधारित क्रमांक जाँचें।

    अपनी चुनौती जाँचें

    जब चाहें जाँच सकते हैं। पूर्णता दर्ज करने के लिए हर मामला पास हो।

    प्रगति केवल localStorage लेती है। इस ब्राउज़र में रहती है और सर्वर पर नहीं जाती।