سؤال

أقوم بتطوير ألعاب بسيطة كهواية. بالنسبة لمشروعي الجديد ، أريد أن تكون بعض الأجزاء قابلة للنص. أنا على دراية ببيثون ولكن لا تمانع في تعلم لغات جديدة. هذا هو السؤال:

أخطط لتنفيذ تحديد المسار ، وحقل الرؤية ، والكشف عن التصادم ، إلخ. في C ++ ولكن أريد استخدام البرامج النصية لآلات حالة الذكاء الاصطناعى والأحداث النصية. ما نوع الهيكل المستخدم لهذا النوع من الوظائف؟ أتصور أنه يمكنني عمل برنامج C ++ يقوم بتشغيل عملية Python والتي بدورها تستدعي أساليب C ++ ، ولكن يبدو أنه غير فعال. فكرة أخرى هي تطوير مكتبة يتم استدعاؤها من بيثون ، والتي لا تبدو جذابة للغاية أيضًا. ما هي الطريقة المعتادة للقيام بذلك (باستثناء كتابة لغتي الخاصة وحلللي؟) سمعت أن لوا شائع للتضمين في برامج C.

هل كانت مفيدة؟

المحلول

من تجربتي الشخصية ، كلاهما لوا و TCL لديك واجهات برمجة تطبيقات C رائعة للتضمين. كلتا اللغتين بسيطة للغاية. إذا كنت تكتب واجهة أمر ، فربما أقول GO مع TCL ، ولكن إذا كنت تستخدم مترجمًا مضمنًا ، فأنا أوصي LUA. بالنظر إلى أنك تستخدم C ++ ، فقد ترغب أيضًا في النظر في لابيند API ، لقد سمعت أشياء جيدة عنها.

للبرمجة البرمجة النصية ، أو أشياء أخرى من نوع آلة ، من نوعها ، منشور المدونة هذا بقلم زيد شو هي قراءة جيدة. يمكن أن يبدو رمز الذكاء الاصطناعى المستند إلى Coroutine أجمل كثيرًا في البرامج النصية المعقدة ، بدلاً من إدارة كومة هائلة من الحالات والتحولات.

إذا كنت تستخدم Python ، فقد تكون أفضل حالًا تمتد بدلاً من التضمين.

نصائح أخرى

تشغيل عملية بيثون؟ نوو ....

تضمين.

من التجربة الشخصية ، يمكنني أن أوصي بشدة بمحرك جافا سكريبت من Google. إنه أداء للغاية ، مكتوب في C ++ ، سهل التضمين بشكل تافه ، وليس له تبعيات أخرى وواجهة أصلية جميلة حقًا.

http://code.google.com/p/v8/

أوافق على أن TCL و LUA هما من أسهل تطبيقات AC/C ++. ويرجع ذلك أساسًا إلى أن هذا كان قرارًا تصميمًا منذ البداية. لغة أخرى تم تصميمها للتضمين غيل.

إذا كنت مهتمًا بتضمين لغة نصية في تطبيق C ++ الخاص بك ، ألق نظرة على جرعة كبيرة. يمكن لـ SWIG إنشاء رمز الغراء تلقائيًا لعدد من لغات البرمجة النصية بما في ذلك Python التي تعرفها بالفعل. الميزة الرئيسية هي أنه يتعامل مع العديد من لغات البرمجة النصية المختلفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top