سؤال

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

كما قلت, هذا لن يكون سيمز مستوى المحاكاة.وأعتقد أنها سوف تصل بالكاد "مقبول مجانية" هو مجرد التعلم وممارسة شيء للحفاظ على المهارات بلدي خلال استراحة.الفرضية الأساسية هي أن عامة الشخص الذي يتم إنشاؤه.أي اسم أو الطول أو أي شيء مثل ذلك (كما قلت بسيطة), الشيء الوحيد الحقيقي وسوف تتلقى قائمة "الجمعيات" و "العامة" إلى "التقاط" و "نظرة" قدرات.

سؤالي الأول في ما يخص الجمعيات.ما لا يوصي كوسيلة فعالة للتعامل مع مثل هذه الأمور ؟ كنت أفكر multimap مع سهلة نسبيا إعداد الرئيسية التي يجري ما يريد (الطعام, تناول, بقية, الخ) وغيرها من بت (آسف ذهني سقط) ويجري ما عليه الزميلة مع تلك الحاجة.

على سبيل المثال ، يقول لدينا ثلاجة.الثلاجة يحتوي على المواد الغذائية (فقط عام قاعدة كائن).في البداية الشخص لا ربط الثلاجة مع الطعام ، ولكنه ربط الطعام مع الجوع.حتى عندما الجوع ينمو يبدأ بشكل تعسفي البحث عن الغذاء.إذا لا يوجد طعام في متناول أنه "يستخدم" الكائنات للعثور على الغذاء.لأنه لا يعرف الجمعيات مع الطعام فإنه يستخدم الأشياء طوعا أو كرها (ربما تبحث عن أقرب كائن وتتوسع خارج).مرة واحدة فإنه يستخدم/يفتح الثلاجة يراه الغذاء ، مما يجعل الاتصال (قراءة:إدخال زوج "الطعام وثلاجة") التي الثلاجة يحتوي على المواد الغذائية.

الآن أنا أدرك أن هذه سوف تكون أكثر تعقيدا مما يبدو, و أنا على استعداد للتوصل بها.السؤال هو هل multimap تكون مناسبة (ربما) أضعافا مضاعفة توسيع قائمة الجمعيات ؟ إذا لم يكن كذلك ، ماذا ستكون ؟

السؤال الثاني لدي ربما أسهل بكثير.ببساطة ، أن كائن عام/البند واجهة تكون مناسبة أكثر من أي بند ؟ وبعبارة أخرى ، فإن عامة "استخدام" واجهة العمل من أجل ماذا كنت تقصد ؟ أنا لا أعتقد أنا أشرح هذا جيدا.

على أي حال, أي التعليقات هي موضع تقدير.

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

المحلول

إذا كنت تفعل هذا من صميم المشروع أقترح استخدام ما يعادل التفكير Java (استبدال لغة من اختيارك هناك).إذا كنت تريد أن تفعل مشروع لعبة كمطلقة الجهد أقترح على الأقل المتداول الخاصة بك نسخة بسيطة من التفكير في الحيثيات التالية.

كل قطعة أثرية في البيئة الخاصة بك ويوفر قدرات معينة.نموذج بسيط من هذا الواقع هو أن نسأل ما "الأفعال" تنطبق على كل كائن شخصيتك الافتراضية لقاءات (بما في ذلك إمكانية الاعتماد على الدولة الحالية من هذا الكائن).على سبيل المثال, الطابع الخاص بك يمكن أن "فتح" ثلاجة, علبة من الحبوب ، أو كتاب ، شريطة أن يكون كل واحد منهم هو في "مغلقة" الدولة.مرة واحدة في كتاب فتح الطابع الخاص بك يمكن قراءتها أو إغلاقه.مرة واحدة يتم فتح الثلاجة الطابع الخاص بك يمكن أن "نظرة في" للحصول على قائمة محتويات مرئية, يمكن إزالة كائن من ذلك ، وضع كائن في ذلك ، إلخ.

وهذه النقطة هي أن حالة نموذجية قد تنطوي على الطابع الخاص بك تبحث في جميع أنحاء لمعرفة ما هو مرئي, الاستعلام عن كائن لتحديد حالته الراهنة أو ما يمكن القيام به مع ذلك (أي"ماذا الدولة" و "ما أستطيع القيام به" عامة الأفعال تنطبق على جميع الكائنات) ، ومن ثم استخدام المعرفة حول حالته الحالية, الدولة للكائن ، والفعل قائمة لذلك الكائن في محاولة تفعل أشياء مختلفة.

من خلال تنفيذ مجموعة من ردود الفعل الإيجابية والسلبية ، مع مرور الوقت الطابع الخاص بك يمكن أن "تعلم" تحت أي ظرف من الظروف أن الانخراط في سلوكيات مختلفة.(هل يمكن أن الواضح أن هذه المحاكاة التفاعلية من قبل ومن بعد نسأل المستخدم للمشاركة في توفير التغذية المرتدة.)

ما سبق هو مجرد رسم ، ولكن ربما أنها يمكن أن تعطي لك بعض الأفكار المثيرة للاهتمام للعب مع.وقد متعة!;-)

نصائح أخرى

على السؤال الأول:

ما أفهمه هو أن يكون لديك واحد-إلى-ربما-العلاقة عديدة.لذا نعم ، multimap يبدو مناسبا لي.

السؤال الثاني:

نعم ، أعتقد عام واجهة الكائنات الملائمة.ربما استخدام شيء مشابه بقية التعامل مع كائن الدولة.

سمعت البودكاست مع المطور النبيلة القرد محاكاة, التي قد تكون مثيرة للاهتمام بالنسبة لك - conceptwise وربما codewise, كما يمكنك الوصول إلى التعليمات البرمجية المصدر, وكذلك تحميل الثنائيات.

بودكاست كان خيط تنظيف أسبوعي 31 مع راندال شوارتز ليو لابورت.

الحياة مع اللثغة(sbcl) :)

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