ما الذي يمكن القيام به مع
جهاز كمبيوتر على مرحلات كهرومغناطيسية لا تحتوي على أي أجهزة إدخال ، ومن أجهزة الإخراج - فقط تفريغ من ثمانية تسجيلات؟
لعب مباريات بالطبع! لعب
الناس القدماء على الآلات الحاسبة MK-61/52 ، والتي كانت أكثر وضوحًا فقط.

خمن الرقم
لقد بدأت باللعبة ، حيث يجب على الكمبيوتر الذي يستخدم نصف القسمة أن يجد العدد الصحيح الذي يخفيه اللاعب من 0 إلى 100.
يكتب الكمبيوتر حدسه لتسجيل A ، ثم يتوقف.
يمكن رؤية قيم جميع السجلات بفضل مصابيح LED المدمجة في التتابع:

يجب على اللاعب الآن تغيير رمز البرنامج في ROM ، واستبدال الثابت الذي تم تحميله في السجل D. إذا لم يكن هناك 0 ، فهذا يعني أن الافتراض أكبر من الرقم الذي طلبته. خلاف ذلك ، أقل. بعد ذلك ، تحتاج إلى النقر فوق الزر "متابعة العمل". بعد فحص الحالة D ، يستخدم الكمبيوتر الافتراض السابق كحد أعلى أو أدنى في المحاولة التالية.
الإصدار الأول من البرنامجMOVI B, 1 ; 00: 10000001 00000001 MOVI C, 101 ; 01: 10000010 01100101 Loop: ADD A, B, C ; 02: 01001000 00011010 SHR A, A ; 03: 01111000 00001100 HALT ; 04: 00010000 00000000 MOVI D, guess ; 05: 10000011 iiiiiiii OR F, D, D ; 06: 01101000 00110011 JMP NZ, Greater ; 07: 11100111 00001010 MOV B, A ; 08: 00011001 00000000 JMP Loop ; 09: 10000111 00000010 Greater: MOV C, A ; 0a: 00011010 00000000 JMP Loop ; 0b: 10000111 00000010

عيب البرنامج الأول هو أنه من غير المناسب استخدامه. يمكن فهم ذلك من خلال النظر إلى صورة ROM - ليس من السهل جدًا تبديل مفاتيح التبديل الصغيرة أثناء لعب اللعبة (ولكنك تحتاج أيضًا إلى التأكد من أن البرنامج لا يفسدها عن طريق الخطأ).
لذلك توصلت إلى خيار إدخال مختلف. للتصحيح
، يتم توفير مفتاح تبديل بجوار كل سجل لإعادة تعيين قيمته. تبديله أكثر ملاءمة من تغيير ROM.
الآن يدخل الكمبيوتر إلى الوحدة في التسجيل D مقدمًا ، ويتجاهلها اللاعب (إذا كان التخمين أقل من الرقم المقصود) أو يتركها كما هي (إذا كان التخمين أكثر).
النسخة النهائية من البرنامج MOVI B, 1 ; 00: 10000001 00000001 MOVI C, 101 ; 01: 10000010 01100101 Loop: ADD A, B, C ; 02: 01001000 00011010 SHR A, A ; 03: 01111000 00001100 MOVI D, 1 ; 04: 10000011 00000001 HALT ; 05: 00010000 00000000 OR F, D, D ; 06: 01101000 00110011 JMP NZ, Greater ; 07: 11100111 00001010 MOV B, A ; 08: 00011001 00000000 JMP Loop ; 09: 10000111 00000010 Greater: MOV C, A ; 0a: 00011010 00000000 JMP Loop ; 0b: 10000111 00000010
لعبة الطرح (لعبة bashe)
لعبة كلاسيكية أخرى غالبًا ما ينفذها المبرمجون المبتدئون هي لعبة Bachet.
في ذلك ، يتناوب لاعبان من كومة تحتوي على عناصر N في البداية على أخذ عنصر واحد على الأقل وليس أكثر من عناصر M. الخاسر هو الذي ليس لديه ما يأخذه.

في نسختي ، تأتي اللعبة مع جهاز كمبيوتر. في البداية ، مجموعة من 21 عنصرًا (على سبيل المثال ، 21 مباراة). يأخذ اللاعبون من 1 إلى 3 مباريات في دورهم ، ويفوز اللاعب الذي خاض المباراة الأخيرة.
تحتوي اللعبة على إستراتيجية الفوز للاعب الأول - اترك دائمًا عدد المباريات ، وهو مضاعف لأربع مباريات. نظرًا لأن 0 هو أيضًا مضاعف من أربعة ، فلن يتمكن اللاعب الثاني من إحضار اللعبة إلى هذا المركز ، مما يعني أنه سيخسر.
الكمبيوتر يأتي في المرتبة الثانية ، مما يترك فرصة للناس ، لكنه لا يرتكب أخطاء. وإذا لم يتبع اللاعب إستراتيجية الفوز ، فسيقوم الكمبيوتر بذلك.
الإصدار الأول من البرنامج MOVI A, 21 ; 00: 10000000 00001101 Loop: HALT ; 01: 00010000 00000000 MOVI B, move ; 02: 10000001 000000mm SUB A, A, B ; 03: 01011000 00001001 AND C, A, 3 ; 04: 01100010 10001011 MOVI Z, C, 1 ; 05: 10010010 00000001 SUB A, A, C ; 06: 01011000 00001010 JMP Loop ; 07: 10000111 00000001
في الإصدار الأول ، تم استخدام نفس الأسلوب لـ "تخمين الرقم" - في دورك كان عليك ترميز عدد التطابقات داخل أحد الإرشادات. يمكنك حتى العد وأخذ جميع المباريات في وقت واحد ، ولن يلاحظ الكمبيوتر أي شيء.
ولكن بعد ذلك أعدت كتابة هذا البرنامج أيضًا. الآن في ثلاثة تسجيلات (B ، C ، D) يدخل الكمبيوتر 1 لكل منهما ، ويجب على اللاعب إعادة تعيين 0 أو 1 أو 2 منهم. الوحدات المتبقية هي تلك المباريات التي يأخذها. الغش ممكن أيضًا إذا قمت بإعادة تعيين السجلات الثلاثة (كما لو كنت لا تأخذ أي شيء).
النسخة النهائية من البرنامج MOVI A, 21 ; 00: 10000000 00010101 Loop: MOVI B, 1 ; 01: 10000001 00000001 MOVI C, 1 ; 02: 10000010 00000001 MOVI D, 1 ; 03: 10000011 00000001 HALT ; 04: 00010000 00000000 SUB A, A, B ; 05: 01011000 00001001 SUB A, A, C ; 06: 01011000 00001010 SUB A, A, D ; 07: 01011000 00001011 AND C, A, 3 ; 08: 01100010 10001011 MOVI Z, C, 1 ; 09: 10010010 00000001 SUB A, A, C ; 0a: 01011000 00001010 JC Exit ; 0b: 10110111 00001101 JNZ Loop ; 0c: 11100111 00000001 Exit: HALT ; 0d: 00010000 00000000
بالطبع ، تبين أن البرنامج أطول إلى حد ما ، ولكن استخدامه أكثر ملاءمة.
علاوة على ذلك ، أخطط لإنهاء ROM (الآن هناك فقط 32 كلمة من أصل 64 ممكن) ، وأضيف أيضًا جهاز إدخال في شكل مصفوفة من مفاتيح التبديل. ربما يمكنك حينئذٍ أن تيك تاك تو على الأقل.