يعتبر Raspberry Pi 2 جهازًا قادرًا بشكل مدهش ، مع الأخذ في الاعتبار سعره الذي يقل عن 30 جنيهًا إسترلينيًا. يأتي مع إصدار من Minecraft مثبت مسبقًا ، إلى جانب واجهة برمجة تطبيقات تتيح لك كتابة التعليمات البرمجية ليتم تشغيلها في العالم الافتراضي. يمكنك القيام بذلك في Python ، وهو أمر سهل التعلم. يوفر الجمع بين Pi و Python و Minecraft فرصة رائعة لبدء استكشاف إمكانيات البرمجة. والإثارة لرؤية منزل يبني نفسه على مشهد افتراضي ليس للأطفال فقط.
كيفية عكس الهاتف إلى roku
البرمجة النصية في Minecraft
Minecraft هي لعبة رمل مفتوحة ليس لديها خط مؤامرة لمتابعة. يتم وصفها أحيانًا على أنها Lego الافتراضية ، حيث يمكن للاعب بناء أي نوع من الهياكل باستخدام الكتل الموجودة تحت تصرفه. يحتوي الإصدار المرفق مع Raspberry Pi على مجموعة ميزات محدودة تناسب دوره التعليمي - لذلك لا داعي للقلق بشأن مطاردة الزومبي ، على سبيل المثال. لا يتطلب التفاعل مع هذا العالم أي إعداد خاص ، فقط بناء حديث لنظام التشغيل Raspbian بالإضافة إلى بيئة برمجة. سأختار Geany ، والذي يمكنك تثبيته بفتح LXTerminal وكتابة:
sudo apt-get install geany
دعنا نبدأ بإنشاء نص لبناء منزل أمام اللاعب - ولكن بدلاً من مجرد وضع واحد في مكانه ، سنقوم بتحريكه. سنقوم أيضًا ببناء العديد من الإعدادات القابلة للتكوين ، والتي ستسمح للاعب بتجربة أبعاد ومواد مختلفة. سيؤدي هذا أيضًا إلى جعل البرنامج معياريًا ، بحيث يمكن استخدامه كأساس لإنشاء آبار أكثر تطوراً.
لجعل الكود يعمل ، قم بتحميله في Geany ثم ابدأ Minecraft وأنشئ عالمًا جديدًا. اضغط على مفتاح Tab لتحرير المؤشر من نافذة Minecraft وانقر فوق رمز الترس في Geany (أو اضغط على F5) لتشغيل البرنامج النصي. يجب أن ترى منزلاً يجمع نفسه بطريقة سحرية. إذا لم تفعل ذلك ، فحاول الاستدارة - فقد يكون ذلك خلفك! يمكنك رؤية النص في العمل هنا . فكيف يعمل البرنامج النصي؟ حسنًا ، أولاً يفتح رابطًا إلى Minecraft:
استيراد mcpi.minecraft كـ minecraft ، الوقت mc = minecraft.Minecraft.create ()
في Python ، من المهم الانتباه إلى المسافة البادئة ، حيث يتم تقسيم الكود إلى كتل. في هذه الحالة ، يتدفق كلا الخطين مع الهامش الأيسر: يستورد السطر الأول مكتبات Minecraft و Time ، بينما ينشئ الثاني كائن Minecraft لنا لاستخدامه طوال الوقت. تحدد الأسطر الخمسة والعشرون التالية بعض المتغيرات للكتل التي سنستخدمها حتى نتمكن من الرجوع إليها ، على سبيل المثال ، ألواح خشبية بدلاً من معرف الكتلة (5 ، في هذه الحالة). ثم نشير إلى أي من هذه الكتل سيتم استخدامه للجدران ، وأي منها بالنسبة للسقف وما إلى ذلك. يمكننا بسهولة تغيير بناء المنزل بالكامل عن طريق تبديل جدران الطوب بالحصى ، على سبيل المثال. أخيرًا ، قمنا بتعيين عرض وطول وارتفاع مسكننا المطلوب.
نسمي الآن دالة Minecraft mc.player.getTilePos () لتحديد موقع المشغل في المشهد ، ثم تُستخدم القيم التي تعود لإنشاء متغيرين ، يسارًا وأسفلًا ، لوصف مكان الزاوية الأولى من المسكن. .
بعد ذلك ، يتطابق هيكل النص مع عملية Minecraft لبناء منزل يدويًا. نبدأ بإخلاء مساحة بحيث إذا اختار اللاعب بناء منزل بداخله ، على سبيل المثال ، جبل ، فلن تكون منطقة المعيشة من الحجر الصلب. ها هي كتلة الكود - الوظيفة في بايثون - التي تقوم بهذا:
def clear_house (النووية):
إذا كان نوويًا == صحيحًا:
blast_zone = 20
آخر:
blast_zone = 0
mc.setBlocks (left-blast_zone ، player_
الأرض ، القاع + منطقة الانفجار ، اليسار + العرض + الانفجار_
المنطقة ، لاعب_الأرض + الارتفاع + الانفجار_
منطقة + 10 ، منطقة انفجار بطول سفلي ، كتلة هوائية)
عندما نسمي clear_house ، نمرر في المعلمة النووية. لها قيمة صواب أو خطأ. يمكنك محاولة تسميته بـ True لمسح حجم أكبر حول المنطقة المستهدفة ، أو تسميته بـ False لقصر الخلوص على الأبعاد الداخلية للمنزل. في Minecraft ، تُستخدم وظيفة mc.setBlocks لإنشاء مكعب من الكتل عن طريق تمرير إحداثيات الزوايا المتقابلة في ثلاثة أبعاد متبوعة بنوع الكتلة الذي ترغب في استخدامه. في هذه الحالة نقوم بإخلاء مساحة ، لذلك نستخدم الهواء.
بمجرد إخلاء المساحة ، حان الوقت للانتقال إلى البناء. تتم كل مرحلة من مراحل البناء هذه في وظيفتها الخاصة. في نهاية البرنامج النصي ، سترى وظيفة تسمى main () ، والتي تتحكم في تدفق البرنامج عن طريق استدعاء كل مرحلة من مراحل البناء بدورها. من خلال تسمية وظائفنا بطريقة منطقية واستدعائها من main () ، من السهل فهم ما يفعله البرنامج:
def main ():
clear_house (خطأ)
start_pos = [يسار ، أسفل ، لاعب_
أرض]
build_floor (start_pos)
بالطبع = build_walls (start_pos)
add_door (door_position)
time.sleep (تأخير * 10)
build_roof (start_pos، course)
الوظيفة التالية تسمى main () تبني الأرضية - وهذا يستخدم mc. setBlocks مرة أخرى لإنشاء أساس (للتأثير الفني) ثم إضافة مكعب من بلاط الأرضيات بعمق كتلة واحدة لإنشاء أرضية صلبة في منزلنا.
كيفية عمل نص المفسد على الخلاف
بناء الجدران
وظيفة build_walls هي قلب البرنامج. الطريقة الأكثر فاعلية لإنشاء قشرة منزل هي صفع مكعب صلب من الطوب ثم استخدام غرفة صافية لنحت الجزء الداخلي. ومع ذلك ، نريد أن يظهر المنزل ليبني نفسه ، لذلك نحتاج إلى وضع الكتل بشكل فردي ، واحدة تلو الأخرى. إليك نسخة مبسطة من كود بناء الجدار:
build_course def (start_pos، direction،
مسار):
كتل = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]
إذا كان الاتجاه == لأعلى أو
الاتجاه == لأسفل:
number_of_blocks = الطول
آخر:
number_of_blocks = العرض
بينما الكتل mc.setBlock (current_horiz، player_
أرض + دورة ، تيار_حول ، جدار_بلوك)
إذا كان الاتجاه == لأعلى:
Current_vert- = 1
اتجاه elif == لأسفل:
Current_vert + = 1
اتجاه elif == يمين:
الأفق الحالي + = 1
آخر:
الآفاق الحالية- = 1
كتل = كتل + 1 # الانتقال إلى الكتلة التالية
الوقت. النوم (تأخير)
نبدأ بتخزين موضع البداية - سيكون هذا هو موضع آخر كتلة تم وضعها من المسار السابق للكتل. ثم نحدد عدد الكتل المراد وضعها ، اعتمادًا على ما إذا كنا نسير على طول المبنى أو عرضه.
يتم احتواء مرحلة البناء داخل الكتلة while - ويستمر ذلك حتى نضع كل الكتل. يضع mc.setBlock كتلة واحدة في الإحداثيات الموضحة ، ثم يزيد أحد هذه الإحداثيات اعتمادًا على الاتجاه الذي نضع فيه. التأثير هو أن الكتل توضع على طول الجدار قبل الانعطاف في الزاوية والاستمرار في المستطيل حتى يتم الانتهاء من الدورة.
كيفية الحصول على الكروم القديم ننظر إلى الوراء
الإصدار الأخير من الكود أكثر تعقيدًا ، حيث يضيف نوافذ إلى كل جدار. النوافذ ذات حجم ديناميكي بحيث تكون نصف طول الجدار ومتمركزة. كما أنه يسجل موضع الباب ؛ تمت إضافته بمجرد بناء الجدران. يتم التحكم في الدورات التدريبية من خلال وظيفة build_walls ، والتي تكرر وظيفة build_course لكل مسار من الكتل حتى تصل إلى الارتفاع النهائي.
يمكنك حتى محاولة بناء منزلك في المحيط أو في الهواء - قم بذلك عن طريق الضغط مرتين على مفتاح المسافة للطيران ، ثم اضغط مرة أخرى لرفع نفسك قبل تشغيل البرنامج النصي. قم بتعديل متغيري wall_block و roof_block لمعرفة ما سيحدث إذا قمت بإنشاء جدران أو سقف من الذهب أو بالفعل من الحمم البركانية. يمكنك إضافة كتل خاصة بك عن طريق الرجوع إلى القائمة الكاملة هنا ، وإضافة المتغير المرتبط بالبرنامج النصي. قد تتضمن التعديلات الأكثر تحديًا إضافة طوابق متعددة إلى الهيكل إذا تم تعيين متغير الارتفاع على قيمة كبيرة بدرجة كافية. اكتشف كيفية إضافة الأبراج ، على سبيل المثال ، ولديك ما يؤهلها لقلعة ماين كرافت.
قد تبدو هذه التعديلات تافهة ، لكنني أبرمج بشكل احترافي لأكثر من 20 عامًا وما زلت أشعر بالإثارة عندما يعمل مقتطف من التعليمات البرمجية على النحو المنشود. إذا لم تكن قد برمجت من قبل ، آمل أن تجربها - وإذا كان لديك معجب Minecraft في المنزل ، أقترح تركهم يفقدون الكود ومعرفة أين يأخذهم. ستجد روابط إلى موارد Minecraft Pi على kevpartner.co.uk/programming .