رئيسي خدمات البث قرصنة Minecraft على Raspberry Pi

قرصنة Minecraft على Raspberry Pi



يعتبر 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 .

مقالات مثيرة للاهتمام

اختيار المحرر

مراجعة Asus ZenPad S 8.0: مذاق راقي بسعر أقل
مراجعة Asus ZenPad S 8.0: مذاق راقي بسعر أقل
تقلصت الأجهزة اللوحية من دائرة الضوء في الآونة الأخيرة. ما كان في يوم من الأيام تيارًا غنيًا ومتنوع الألوان قد تباطأ إلى حد كبير ، ولكن على الرغم من ذلك ، أصبح من الصعب بشكل متزايد على الشركات المصنعة أن تترك بصماتها. لم يتراجع ، ZenPad S.
كيفية إنشاء موضوع على X (تويتر سابقًا)
كيفية إنشاء موضوع على X (تويتر سابقًا)
دليل المبتدئين الكامل لسلسلة X، موضحًا ماهيتها، وكيفية استخدامها، وكيفية ارتباطها بعاصفة التغريدات، وكيفية كتابتها.
كيفية تغيير الموقع في الخلاف
كيفية تغيير الموقع في الخلاف
https://www.youtube.com/watch؟v=bbU7a-A6kvU إذا كنت تواجه مشكلات في الاتصال الصوتي في Discord ، فإن عملية تغيير منطقتك أو موقعك يمكن أن تخفف من حدة المشكلة. عند إنشاء حساب Discord الخاص بك لأول مرة ، قد يقوم Discord تلقائيًا
تربط Amazon و Netflix و PornHub الأسلحة في معركة حيادية الشبكة
تربط Amazon و Netflix و PornHub الأسلحة في معركة حيادية الشبكة
يتجمع عمالقة التكنولوجيا من الشبكات الاجتماعية إلى المواقع الإباحية اليوم حول يوم واحد من العمل لصالح حيادية الإنترنت في الولايات المتحدة ، ويغيرون صفحاتهم الأولى قبل خمسة أيام من الإجراء المقترح للتخلي عن القواعد التي تدعم حاليًا
macOS: تحرير الصور مع عكس التحديد في المعاينة لنظام التشغيل Mac
macOS: تحرير الصور مع عكس التحديد في المعاينة لنظام التشغيل Mac
المعاينة
كيفية إلغاء حظر شخص ما على Facebook
كيفية إلغاء حظر شخص ما على Facebook
تسمح منصات وسائل التواصل الاجتماعي لملايين الأشخاص بالتفاعل مع بعضهم البعض كل يوم. في بعض الأحيان ، تكون هذه التفاعلات أقل من ممتعة. يمكن أن ترتفع العواطف ولحماية سلام المرء ، غالبًا ما يتم استخدام وظيفة الحجب. هذه الوظيفة تخدم
كيفية تنشيط Windows 10 Anniversary Update 1607 RTM
كيفية تنشيط Windows 10 Anniversary Update 1607 RTM
فيما يلي جميع الطرق لتنشيط الإصدار 1607 RTM من Windows 10 Anniversary Update بشكل صحيح. اطلع على بعض الخطوات البسيطة التي يمكنك القيام بها لتنشيطها.