نفّذ منطق لعبة Hangman باستخدام البرمجة التفاعلية الوظيفية.
Hangman لعبة بسيطة لتخمين الكلمات.
البرمجة التفاعلية الوظيفية طريقة لكتابة البرامج التفاعلية. وهي تختلف عن المنظور المعتاد: فبدلًا من أن تقول «عند الضغط على الزر، زد العدّاد»، تكتب «قيمة العدّاد هي مجموع عدد مرات الضغط على الزر».
نفّذ المنطق الأساسي الكامن وراء لعبة Hangman باستخدام البرمجة التفاعلية الوظيفية. ستحتاج إلى تثبيت مكتبة FRP للقيام بذلك، وسيُشرح هذا في ملفات هذا التمرين الخاصة باللغة والمسار.
يرجى تجاهل الجزء المتعلق بمكتبة FRP؛ فالمكتبة الخارجية غير مطلوبة لهذا التمرين. يركّز هذا التمرين على البرمجة القائمة على الأحداث باستخدام الاستدعاءات الراجعة وحلقة الأحداث في Tcl.
يُطلب منك بناء خادم TCP وبروتوكول خاص بالمجال. يُشغَّل هذا الخادم بالكلمة المطلوب تخمينها. وينفّذ نص الاختبار العميل الذي يرسل الأوامر إلى الخادم.
أوامر البروتوكول المطلوب تنفيذها هي:
STATUS لإرجاع الحالة الراهنة للعبة. ستكون الاستجابة مصفوفة من ثلاثة عناصر:
GUESS x حيث x حرف مطلوب تخمينه. سيستجيب الخادم بمصفوفة الحالة بعد كل تخمين.SHUTDOWN لإيقاف الخادم عن بُعد. وإلا فسيُنهي الخادم عمله بعد الفوز أو الخسارة.ينبغي أن يكون الخادم قادرًا على التعامل مع هذه الأوامر دون التمييز بين الحروف الكبيرة والصغيرة.
شغّل خادمك باستخدام رقم المنفذ 0: سيعثر Tcl على منفذ غير مستخدم، فلا داعي لتضمين رقم منفذ مباشرةً في نص الاختبار. جميع المفسّرات التي تعمل داخل عملية واحدة (بما فيها الخيوط) تتشارك البيئة نفسها، لذا يمكن للخادم أن يمرّر رقم المنفذ الخاص به إلى نص الاختبار عبر المصفوفة العامة env. ويوجد مثال في ملف hangman.tcl الأوّلي.
ستحتاج إلى أوامر Tcl التالية:
socket،
fileevent،
vwait.
يمكن أن يساعدك برنامج socket النموذجي على البدء.
سجّل في Exercism لتتعلّم وتتقن Tcl عبر 135 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.