مائن کرافٹ پائی ایڈیشن کے ساتھ ازگر اور الیکٹرانکس سیکھیں۔

مائن کرافٹ پائی ایڈیشن کے ساتھ ازگر اور الیکٹرانکس سیکھیں۔

کیا آپ ہمیشہ کوڈ سیکھنا چاہتے ہیں لیکن نہیں جانتے کہ کہاں سے شروع کریں؟ ازگر اور کچھ آسان الیکٹرانکس کا استعمال کرتے ہوئے راسبیری پائی پر مائن کرافٹ کو کنٹرول کرنے کا طریقہ سیکھیں۔ یہاں حتمی نتیجہ ہے:





آپ کو اس پروجیکٹ کے لیے ایک Pi 2 یا اس سے نئے کی ضرورت ہوگی ، اور جب کہ آپ سیکور شیل (SSH) پر کمانڈ لائن کے ذریعے ان میں سے بیشتر کام مکمل کر سکتے ہیں ، یہ ٹیوٹوریل براہ راست Pi پر کوڈنگ پر توجہ دے گا۔





مائن کرافٹ میں نیا؟ پریشان نہ ہوں - یہ ہے ہمارا۔ مائن کرافٹ ابتدائی گائیڈ۔ .





مائن کرافٹ پائی کا تعارف

Raspberry Pi کے لیے Minecraft سیکھنے اور ٹنکرنگ کے لیے تیار کیا گیا ہے (اور یہ مفت ہے)۔ یہ ایک ایپلی کیشن پروگرامنگ انٹرفیس (API) کے ساتھ آتا ہے جو کوائن کو Minecraft سے آسانی سے بات کرنے کا ایک طریقہ فراہم کرتا ہے۔ ازگر میں کوڈ کرنے کا طریقہ سیکھنے کے ساتھ ساتھ الیکٹرانکس کے ساتھ شروعات کرنا بھی شاندار ہے۔

ازگر کیا ہے؟

ازگر۔ ایک پروگرامنگ زبان ہے۔ یہ ہے تشریح کی ، جس کا مطلب ہے کہ جب آپ ازگر کی فائل یا پروگرام چلاتے ہیں تو ، کمپیوٹر کو پہلے فائل پر تھوڑا سا کام کرنا پڑتا ہے۔ منفی پہلو یہ ہے کہ اسے مرتب شدہ زبانوں کے مقابلے میں سست سمجھا جا سکتا ہے [ٹوٹا ہوا URL ہٹا دیا گیا]۔



تشریح شدہ زبانوں کے فوائد کوڈنگ کی رفتار اور ان کی دوستی ہیں۔ آپ کو کمپیوٹر کو بتانے کی ضرورت نہیں ہے۔ کیا جو ڈیٹا آپ ذخیرہ کرنا چاہتے ہیں ، صرف اتنا کہ آپ کچھ ذخیرہ کرنا چاہتے ہیں اور کمپیوٹر کو پتہ چل جائے گا کہ کیا کرنا ہے۔ یقینا There مستثنیات ہیں ، اور یہ کچھ حد تک آسان نظارہ ہے ، تاہم پروگرامنگ مزہ آنی چاہیے! اگر آپ پیچیدہ تکنیکی تفصیلات کو کھودنا شروع کردیتے ہیں تو یہ تھوڑا محنت طلب ہوسکتا ہے۔

ازگر کیس حساس ہے۔ یہ جاننا ضروری ہے ، کیونکہ ازگر اشیاء کو نہیں پہچان سکے گا۔ یہاں تک کہ اگر ان کی ہجے درست ہے۔ اگر کیس غلط ہے 'Dosomething ()' کام نہیں کرے گا اگر طریقہ کو اصل میں 'DoSomething ()' کہا جائے۔ ازگر انڈینٹیشن بھی استعمال کرتا ہے۔ . دوسری پروگرامنگ زبانوں کو اس بات کی پرواہ نہیں ہے کہ آپ کے کوڈ میں کتنے انڈینٹس ہیں ، جبکہ ازگر۔ کرتا ہے دیکھ بھال انڈینز کا استعمال ازگر کو بتانے کے لیے کیا جاتا ہے کہ کوڈ کہاں سے تعلق رکھتا ہے۔ دوسری زبانیں گروپ کوڈ کے لیے 'Curly Braces' ({}) استعمال کر سکتی ہیں - ازگر ان کو استعمال نہیں کرتا۔ ازگر تبصروں کے لیے ہیش (#) کا استعمال کرتا ہے ، اور تبصرے دوسرے ڈویلپرز یا کوڈ کو دیکھنے والے لوگوں کو بتانے کے لیے استعمال کیے جاتے ہیں کہ ایک خاص حصہ کیا کرتا ہے ، یا اس کی ضرورت کیوں ہے۔ ازگر ہیش کے بعد کسی بھی چیز کو نظر انداز کر دیتا ہے۔





آخر میں ، ازگر کے دو اہم ورژن ہیں - ازگر 2.7.x اور ازگر 3.x۔ دونوں کے درمیان کچھ اختلافات ہیں ( اختلافات کیا ہیں؟ ). یہ سبق ازگر 3 استعمال کرے گا۔

ابتدائی ڈھانچہ

آپ کا پی آئی فراہم کرنا پہلے ہی ہے۔ Raspbian سیٹ اپ اور چل رہا ہے۔ ، بہت زیادہ ابتدائی سیٹ اپ کی ضرورت نہیں ہے۔





ٹرمینل کھولیں ( مینو> لوازمات> ٹرمینل۔ ) اور اس کمانڈ کو چلائیں۔ ذخیرے کی فہرست کو تازہ رکھنا ہمیشہ اچھا عمل ہے ، اور یہ پروگراموں کی تازہ ترین فہرست ڈاؤن لوڈ کرے گا (یہ پروگرام خود ڈاؤن لوڈ نہیں کرے گا ، اس سے پی آئی کو یہ جاننے میں مدد ملتی ہے کہ کون سے پروگرام کہلاتے ہیں اور انہیں کہاں تلاش کرنا ہے)۔

sudo apt-get update

اب پی کو اپ ڈیٹ کریں (اس میں کچھ وقت لگ سکتا ہے):

sudo apt-get upgrade

ازگر اور مائن کرافٹ پائی پہلے ہی انسٹال ہیں ، تاہم اگر مائن کرافٹ پائی کسی وجہ سے انسٹال نہیں ہے تو ، انسٹال کرنا آسان ہے:

sudo apt-get install minecraft-pi

دستاویزات پر جائیں اور 'Minecraft' کے نام سے ایک نیا فولڈر بنائیں:

cd Documents/
mkdir Minecraft

آپ اس نئے فولڈر کے مندرجات دیکھ سکتے ہیں:

ls

یہاں ایک ٹپ ہے - اگر آپ ٹائپ کرنا شروع کرتے ہیں اور ٹی اے بی کی کو دباتے ہیں تو کمانڈ لائن آپ کے لیے بیان کو خود بخود مکمل کرنے کی کوشش کرے گی۔

آپ pwd کا استعمال کرتے ہوئے موجودہ ڈائریکٹری کے راستے کی جانچ کر سکتے ہیں ، جس کا مطلب ہے پرنٹ ورکنگ ڈائریکٹری:

pwd

پر جا کر مائن کرافٹ شروع کریں۔ مینو> گیمز> مائن کرافٹ پائی۔ . آپ کو اس دوڑ کی ضرورت ہوگی ، لیکن بعد میں اس پر واپس آئیں گے۔

ازگر 3 کھولیں۔ مینو> پروگرامنگ> ازگر 3 (IDLE) . یہ پروگرام آپ کو ازگر کمانڈ چلانے اور پروگرام لکھنے کا ایک طریقہ فراہم کرتا ہے۔

اب آپ یہاں اپنے ازگر کے کمانڈ ٹائپ کرسکتے ہیں ، لیکن یہ بہت عملی نہیں ہے۔ کے پاس جاؤ فائل> نئی فائل۔ اور پھر فائل> محفوظ کریں۔ اور اسے اس فولڈر میں محفوظ کریں جو آپ نے پہلے بنایا تھا۔ ( دستاویزات> مائن کرافٹ۔ ). چلو اسے کہتے ہیں ' hello_world.py '. آپ کو .py ایکسٹینشن استعمال کرنے کی ضرورت نہیں ہے ، یہ خود بخود شامل ہو جائے گا ، لیکن یہ اچھا عمل ہے۔

اگر آپ واپس ٹرمینل پر سوئچ کرتے ہیں ، اور مائن کرافٹ فولڈر میں تشریف لے جاتے ہیں تو آپ کو وہ فائل نظر آنی چاہیے جو آپ نے ابھی بنائی ہے:

cd Minecraft/
ls

آپ اس فائل کو اس طرح چلا سکتے ہیں:

python hello_world

ملاحظہ کریں کہ 'ازگر' تمام لوئر کیس کیسے ہے۔ یہ فائل کے نام سے پہلے ہونا ضروری ہے ، کیونکہ یہ پائی کو بتاتا ہے کہ درج ذیل فائل ازگر ہے ، لہذا اسے اس طرح پھانسی دی جانی چاہئے۔

ازگر ایڈیٹر پر واپس جائیں اور ٹائپ کریں:

print 'Hello, World!'

اس فائل کو محفوظ کریں اور اسے دوبارہ چلائیں - اب آپ کو 'ہیلو ، ورلڈ' دیکھنا چاہیے۔ کمانڈ لائن میں ظاہر - صاف! پرنٹ کمانڈ ازگر کو صرف یہ بتاتی ہے کہ درج ذیل متن کو ڈبل کوٹس میں آؤٹ پٹ کریں۔ یہ اچھا ہے ، لیکن Minecraft کے لیے بہت زیادہ مفید نہیں ہے ، آئیے اسے لنک کریں:

from mcpi.minecraft import Minecraft
mc = Minecraft.create()
mc.postToChat('Hello, World!')

اب اگر آپ اس فائل کو محفوظ اور چلاتے ہیں تو آپ کو 'ہیلو ، ورلڈ' دیکھنا چاہیے۔ مائن کرافٹ گیم میں ظاہر ہوتا ہے۔ آئیے کوڈ کو توڑتے ہیں:

from mcpi.minecraft import Minecraft

یہ لائن ازگر کو بتاتی ہے کہ آپ کسی دوسری فائل سے کوڈ استعمال کرنا چاہتے ہیں۔ یہ mcpi.minecraft فائل مائن کرافٹ کے آسان کنٹرول کی اجازت کے لیے تیار کی گئی تھی۔

mc = Minecraft.create()

یہ لائن ایک شے بناتی ہے جسے 'mc' (Minecraft) کہتے ہیں۔ آپ کو مائن کرافٹ گیم میں رابطے کی اجازت دینے کے لیے اسے بنانا ہوگا - صرف فائل کو شامل کرنا کافی نہیں ہے۔

mc.postToChat('Hello, World!')

آخر میں ، یہ لائن مائن کرافٹ سے کہتی ہے کہ وہ چیٹ پر کچھ متن لکھے۔ 'ہیلو ، ورلڈ' کو تبدیل کرنے کی کوشش کریں۔ کچھ اور کریں اور دیکھیں کہ کیا ہوتا ہے ، لیکن دونوں ڈبل کوٹس کو شامل کرنا یاد رکھیں۔ اگر آپ کو سافٹ وئیر کے مسائل درپیش ہیں تو یہ کچھ عام ازگر اور مائن کرافٹ پائی کی غلطیاں ہیں۔

  • AttributeError - یہ ایک ٹائپو ہے ، جیسے پرنٹ کے بجائے پنٹ یا پرنٹ۔
  • نام کی خرابی: نام 'مائن کرافٹ' کی وضاحت نہیں کی گئی ہے - اپنی ضرورت کے ماڈیول درآمد کرنا یاد رکھیں۔
  • نام کی خرابی: نام 'سچ' کی وضاحت نہیں کی گئی ہے - ازگر کیس حساس ہے ، اسے 'سچ' میں تبدیل کریں
  • socket.error: [Errno 111] کنکشن نے انکار کر دیا - یقینی بنائیں کہ Minecraft چل رہا ہے۔

منصوبے۔

اب جب آپ ازگر اور مائن کرافٹ کی بنیادی باتیں جانتے ہیں ، آئیے کچھ ٹھنڈے منصوبے بنائیں۔ تمام کوڈ گیتھب سے ڈاؤن لوڈ کیا جا سکتا ہے۔

خودکار پل بنانے والا۔

یہ پروگرام پانی پر مؤثر طریقے سے پل بنائے گا۔ جب کھلاڑی پانی کے جسم کے قریب پہنچ جاتا ہے تو ، پروگرام کئی بلاکس کو پتھر میں تبدیل کردے گا۔ جیسا کہ مائن کرافٹ ایک کوآرڈینیٹ سسٹم استعمال کرتا ہے ، کھلاڑی کے آس پاس کے بلاکس کی قسم کے ساتھ ، کھلاڑی کا مقام حاصل کرنا بہت آسان ہے۔ مائن کرافٹ پائی قدرے محدود ہے ، اس لیے بڑے پیمانے پر مختلف بلاکس کو اپ ڈیٹ کرنا ممکن نہیں ہے۔ تاہم ، آپ آسانی سے اس طرز عمل کو خود کوڈ کرسکتے ہیں۔

ایک نئی فائل بنائیں ( فائل> نئی فائل۔ ) اور اسے 'کے طور پر محفوظ کریں bridge_builder.py '.

from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos() # store player position

# store the surrounding blocks
a = mc.getBlock(x, y - 1, z + 1)
b = mc.getBlock(x, y - 1, z - 1)
c = mc.getBlock(x - 1, y - 1, z)
d = mc.getBlock(x + 1, y - 1, z)
if a == 8 or a == 9 or b == 8 or b == 9 or c == 8 or c == 9 or d == 8 or d == 9:
# 8 or 9 is water. Set surrounding blocks on floor to a solid (stone) if water is found
mc.setBlocks(x, y - 1, z, x + 1, y - 1, z + 1, 1)
mc.setBlocks(x, y - 1, z, x - 1, y - 1, z - 1, 1)
mc.setBlocks(x, y - 1, z, x - 1, y - 1, z + 1, 1)
mc.setBlocks(x, y - 1, z, x + 1, y - 1, z - 1, 1)

نوٹ کریں کہ y کی قیمت اصل میں کس طرح دیکھ رہی ہے - 1. یہ منزل کی سطح ہے۔ اگر y کی قدر استعمال کی جاتی تو اسکرپٹ گھٹنے کی سطح پر بلاکس تلاش کرتا - یہ بہت اچھا کام نہیں کرے گا! Mc.getBlock () دیے گئے نقاط کے لیے بلاک کی آئی ڈی لوٹاتا ہے۔ جیسا کہ x ، y ، اور z کھلاڑی کے نقاط ہیں ، آپ کھلاڑی کے آس پاس پوزیشن حاصل کرنے کے لیے ان میں سے اضافہ یا منہا کرسکتے ہیں۔ آپ کو x ، y ، اور z ویلیوز استعمال کرنے کی ضرورت نہیں ہے ، آپ کوئی بھی نمبر استعمال کرسکتے ہیں ، تاہم آپ کو معلوم نہیں ہوگا کہ اس بلاک کا پلیئر سے کیا تعلق ہے۔ اس فائل کو کمانڈ لائن سے چلائیں اور دیکھیں کہ کیا ہوتا ہے۔

آپ کو دیکھنا چاہیے کہ ایک بار جب کھلاڑی پانی کے جسم تک پہنچ جاتا ہے تو زمین کا ایک چھوٹا سا علاقہ پتھر میں بدل جاتا ہے۔ یہ بہت اچھا نہیں ہے - آپ کسی مسئلے کی وجہ سے کافی تیز چل سکتے ہیں۔ آپ پانی کے ایک بڑے حجم کو زمین میں تبدیل کرکے اسے حل کرسکتے ہیں۔ mc.setBlocks () طریقہ کا آخری حصہ بلاک آئی ڈی ہے۔ ایک پتھر کے لیے بلاک آئی ڈی ہے۔ آپ اسے لکڑی ، گھاس یا کسی بھی چیز میں تبدیل کر سکتے ہیں۔ اگر آپ چاہتے ہیں تو ، آپ اسے آسانی سے ایک پیچیدہ ڈیزائن میں تبدیل کر سکتے ہیں - شاید ایک معطلی پل!

سپر مائننگ بٹن۔

یہ مثال کان کنی کا مختصر کام کرے گی۔ یہ ایک فزیکل بٹن پر مشتمل ہوتا ہے ، جب اسے دبانے سے 10 بلاکس کیوب ہو جائیں گے۔ آئیے بٹن سے شروع کریں۔ Arduino پر بٹنوں کی طرح ، آپ کو تھوڑی مقدار میں الیکٹرانکس کی ضرورت ہوگی ، یہ سب ایک بنیادی سٹارٹر کٹ میں پائے جائیں:

  • 1 ایکس بریڈ بورڈ۔
  • 1 ایکس لمحاتی سوئچ
  • 1 x 220 اوہم ریزسٹر
  • خاتون> مرد جمپ کیبلز۔
  • مرد> مرد جمپ کیبلز۔

یہاں سرکٹ ہے:

پائی بٹن کنکشن۔

اس ریزسٹر کو 'پل ڈاون' ریزسٹر کہا جاتا ہے۔ اس بات کو یقینی بنانے میں مدد ملتی ہے کہ Pi جو سوچتا ہے وہ بٹن دبایا جا رہا ہے ، کیا واقعی بٹن دبایا جا رہا ہے۔ آپ کو اسے استعمال کرنے کی ضرورت نہیں ہے ، تاہم اس کی سفارش کی جاتی ہے ، کیونکہ آپ کو اس کے بغیر بہت شور اور جھوٹی ریڈنگ مل سکتی ہے۔

بٹن جنرل پرپز ان پٹ آؤٹ پٹ (GPIO) پن 14 سے منسلک ہے۔ آپ کسی بھی GPIO پن کو استعمال کر سکتے ہیں ، تاہم پن آؤٹ سب سے پہلے ، چونکہ وہ Pi سے تمام قابل کنٹرول نہیں ہیں ، اور ماڈلز کے درمیان قدرے مختلف ہوتے ہیں۔

اب جب کہ بٹن جڑا ہوا ہے ، اب وقت آگیا ہے کہ اس کی جانچ کی جائے۔ ایک نئی فائل بنائیں اور اسے 'کے طور پر محفوظ کریں button_test.py '. اس کوڈ کو شامل کریں ، اسے محفوظ کریں پھر اسے ٹرمینل میں چلائیں۔

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
print 'BUTTON WORKS!' # log result
time.sleep(0.5) # wait 0.5 seconds

دبائیں کنٹرول + سی اسکرپٹ کو روکنے کے لیے۔ اگر سب کچھ صحیح طریقے سے کام کر رہا ہے تو آپ کو 'بٹن کام کرتا ہے!' ٹرمینل میں. غور کریں کہ مائن کرافٹ ماڈیول کی طرح ، یہ ٹیسٹ RPi.GPIO اور ٹائم ماڈیول استعمال کر رہا ہے۔ یہ Pi کو ہارڈ ویئر پنوں تک رسائی اور وقت کے مفید افعال فراہم کرنے کی اجازت دیتے ہیں۔

اب باقی کوڈ کو ختم کرتے ہیں۔ کال کی گئی ایک نئی فائل بنائیں ' super_mine.py '. یہاں کوڈ ہے:

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
x, y, z = mc.player.getPos() # read the player position
mc.setBlocks(x, y, z, x + 10, y + 10, z + 10, 0) # mine 10 blocks
mc.setBlocks(x, y, z, x - 10, y + 10, z - 10, 0) # mine 10 blocks
time.sleep(0.5) # wait 0.5 seconds

mc.player.getPos () کھلاڑیوں کو موجودہ نقاط لوٹاتا ہے ، جو پھر x ، y اور z میں محفوظ ہوتے ہیں۔ کی سیٹ بلاکس () طریقہ مائن کرافٹ کو بتاتا ہے کہ شروع اور اختتام کے درمیان تمام بلاکس کو درج ذیل بلاک سے پُر کریں۔ زیرو ہوا کے لیے بلاک آئی ڈی ہے۔ کسی علاقے کو ٹھوس بھرنے کے لیے آپ اسے کسی اور بلاک آئی ڈی میں تبدیل کر سکتے ہیں۔ آپ نقاط کو +100 یا یہاں تک کہ +1000 بلاکس میں بھی تبدیل کر سکتے ہیں ، تاہم اگر آپ بہت زیادہ پاگل ہو جائیں تو Pi جدوجہد شروع کر سکتا ہے۔ نوٹ کریں کہ کس طرح y + 10 دونوں لائنوں کے لیے ایک جیسا ہے۔ اگر آپ زیر زمین بلاکس کو ہٹانا چاہتے ہیں تو آپ اسے y - 10 میں تبدیل کر سکتے ہیں۔

ٹیلی پورٹنگ

اس بٹن کا ایک اور آسان استعمال 'ٹیلی پورٹ' ہو سکتا ہے۔ مائن کرافٹ پائی اے پی آئی کھلاڑی کی پوزیشن متعین کرنے کا ایک طریقہ فراہم کرتا ہے۔ درج ذیل کوڈ کھلاڑی کو ایک پیش سیٹ مقام پر 'ٹیلی پورٹ' کرے گا۔

mc.player.setPos(0, 0, 0)

نوٹ کریں کہ اس کا طریقہ تین پیرامیٹرز کو قبول کرتا ہے۔ x ، y ، اور z - تاکہ آپ کھلاڑی کو فوری طور پر اس مقام پر ٹیلی پورٹ کرنے کے لیے ان کو کسی بھی چیز پر سیٹ کر سکیں۔

super_mine فائل کی ایک کاپی بنائیں ( فائل> بطور کاپی محفوظ کریں۔ ) اور اگر اسے درج ذیل کے ساتھ تبدیل کر کے اس میں ترمیم کریں:

if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

یہ فائل اب اس طرح نظر آنی چاہیے:

import RPi.GPIO as GPIO
from mcpi.minecraft import Minecraft
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

اسے 'کے طور پر محفوظ کریں teleport.py 'اور چلائیں

آپ کو معلوم ہو سکتا ہے کہ کھلاڑی اس کو استعمال کرتے وقت کچھ بلاکس کے اندر پھنس جاتا ہے ، ایسی صورت میں آپ کو نقاط کو ایک معروف کھلی جگہ پر ایڈجسٹ کرنے کی ضرورت ہوگی (اسکرین کے اوپر بائیں آپ کا موجودہ مقام دکھاتا ہے)۔

ایک گھر تعمیر کرو

اس بٹن کے لیے ایک آخری کام گھر بنانا ہے۔ اوپر کی فوری کان کنی کی مثال کی طرح ، یہ گھر بنانے کے لیے کھلاڑی کے آس پاس کے بلاکس کو تبدیل کر دے گا۔ مختلف مواد (کھڑکی ، دیواریں وغیرہ) کے لیے مختلف بلاک ایڈ استعمال کیے جائیں گے۔ چیزوں کو کوڈ میں آسان بنانے کے لیے ، ایک ٹھوس بلاک بنایا جائے گا ، اور پھر اندر سے ہٹا دیا جائے گا (بلاک ٹو ایئر) ، یہ ایک کھوکھلا شیل بنائے گا۔ آپ ایک بستر یا دروازے کی طرح اضافی چیزیں شامل کر سکتے ہیں ، تاہم مائن کرافٹ پائی پروجیکٹ تھوڑا سا نامکمل ہے ، اور جب یہ چیزیں کھلاڑی کے ذریعہ کام کرتے ہیں تو وہ ازگر کا استعمال کرتے وقت شاندار نہیں ہوتے ہیں۔

from mcpi.minecraft import Minecraft
import RPi.GPIO as GPIO
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True:
x, y, z = mc.player.getPos()
mc.setBlocks(x + 2, y - 1, z + 2, x + 7, y + 3, z + 8, 5) # make shell
mc.setBlocks(x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # remove inside
mc.setBlocks(x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # make doorway
mc.setBlocks(x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # make window 1
mc.setBlocks(x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # make window 2
mc.setBlocks(x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # make window 3

اسے بطور محفوظ کریں ' house.py 'اور چلائیں سب ٹھیک ہے ، آپ کو ایک چھوٹا سا گھر دکھائی دینا چاہیے (اسے ڈھونڈنے کے لیے آپ کو گھومنا پڑ سکتا ہے)۔ یہ بہت آسان ہے ، ایک کھلنا اور کچھ کھڑکیاں۔ نظریہ میں ، اس بات کی کوئی حد نہیں ہے کہ آپ کتنی بڑی یا پیچیدہ عمارت تعمیر کر سکتے ہیں۔

ایک منی گیم بنائیں۔

اگلا ، آئیے ایک منی گیم بنائیں! یہ بہت آسان ہوگا ، جب کھلاڑی ریت کے ایک بلاک پر قدم رکھتا ہے ، یہ بے ترتیب وقت کے بعد لاوا میں بدل جائے گا۔ یہ بنانے کے لیے ایک اچھا کھیل ہے ، کیونکہ آپ اپنی سطح کو خود ڈیزائن کر سکتے ہیں یا چیزوں کو مشکل بنانے کے لیے اس میں ترمیم کر سکتے ہیں۔ آپ کو اس مثال کے لیے بٹن کی ضرورت نہیں ہوگی۔

ایک نئی فائل بنائیں اور اسے 'کے طور پر محفوظ کریں mini_game.py '. یہاں کوڈ ہے:

from mcpi.minecraft import Minecraft
import random
import time
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos()
block_under_player = mc.getBlock(x, y - 1, z)

if block_under_player == 12:
# player standing on sand, start the timer
random_time = random.uniform(0.1, 2.5) # generate random number
time.sleep(random_time); # wait
mc.setBlock(x, y - 1, z, 11) # turn it into lava

یہ کوڈ ایک اچھا آغاز ہے۔ بے ترتیب () فنکشن: بے ترتیب یونیفارم (0.1 ، 2.5) 0.1 (1/10 سیکنڈ) اور 2.5 (2 1/2 سیکنڈ) کے درمیان بے ترتیب نمبر پیدا کرے گا۔ ان تعداد میں اضافہ کھیل کو آسان بنا دے گا۔

اسے آزمائیں! ریت کے ایک بلاک پر کھڑے ہو جاؤ ، اور یہ جلد ہی لاوا میں بدل جائے گا۔ یہ ایک زیادہ پیچیدہ کھیل کی بنیاد ہوسکتی ہے۔

ایک اور منی گیم بنائیں۔

اس کھیل کی بنیاد سادہ ہے - وقت ختم ہونے پر لکڑی کے فرش پر کھڑے نہ ہوں۔ کھلاڑی کو ایک 'میدان' میں ٹیلی پورٹ کیا جاتا ہے۔ وہ کھیل شروع ہونے تک خاموش رہنے پر مجبور ہیں۔ ایک بار شروع ہونے کے بعد ، ٹائمر ختم ہونے پر فرش پانی میں بدل جائے گا۔ کھلاڑی کو زندہ رہنے کے لیے سیف زون (ڈائمنڈ بلاکس) میں کھڑا ہونا چاہیے۔ ہر سطح ٹائمر کو ایک سیکنڈ سے کم کرتی ہے۔ ہر کامیاب سطح کے بعد محفوظ علاقہ بڑا ہو جاتا ہے۔ ذیل میں کوڈ چیک کریں:

import time
import random
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
# clear area
mc.setBlocks(-10, 1, -10, 25, 5, 25, 0)
# create arena shell
mc.setBlocks(0, 0, 0, 25, 10, 25, 17)
# hollow out arena
mc.setBlocks(1, 1, 1, 24, 10, 24, 0)
# move player to arena
mc.player.setPos(14, 25, 20) # teleport player
# make them stay put
# teleport player to start position every 1/10th second.
# do this for 5 seconds then start the game
time.sleep(2)
total_wait = 0
mc.postToChat('Waiting to Start')
while total_wait <5:
mc.player.setPos(14, 1, 20) # teleport player
time.sleep(0.1)
total_wait += 0.1
mc.postToChat('BEGIN!')
# 10 levels
for level in range(10):
x, y, z = mc.player.getPos()
level_time = 10 - level # reduce time by 1 second for each level
mc.postToChat('Level - ' + str(level + 1) + ' start')
# build floor
mc.setBlocks(0, 0, 0, 25, 0, 25, 17)
# make safe area
safe_area_start = random.uniform(0, 22)
safe_area_end = random.uniform(0, 22)
mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57)
elapsed_time = 0
while elapsed_time <10:
x, y, z = mc.player.getPos()
time.sleep(0.25)
elapsed_time += 0.25
# check player is still on floor
if y <0.75:
mc.postToChat('Game Over')
break;
else:
# remove floor
mc.setBlocks(-10, 0, -10, 25, 0, 25, 8)
# put safe area back
mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57)
time.sleep(2.5)
continue
break

اسے بطور محفوظ کریں ' mini_game_2.py 'اور اسے ایک رن دو۔

مائن کرافٹ چلاتے ہوئے پی آئی 2 میں کارکردگی کے کچھ مسائل ہیں۔ سینٹرل پروسیسنگ یونٹ (سی پی یو) استعمال کا گراف ( اوپر دائیں کونے ) کبھی بھی کوئی بھاری بوجھ نہیں دکھاتا ہے ، لہذا یہ ڈویلپرز کی طرف سے ناقص ڈیزائن اور اصلاح کے لیے ضروری ہے۔ یہ مسائل چلنے والے کوڈ سے غیر متعلق ہیں (جیسا کہ وہ جاری رہتے ہیں جب ازگر نہیں چل رہا ہوتا ہے) ، تاہم وہ اس منی گیم سے پیچیدہ ہیں۔ اگر آپ کا پی آئی واقعی جدوجہد کر رہا ہے تو آپ میدان کے سائز کو کم کرنا چاہتے ہیں یا اپنے پی آئی کو اوور کلاک کرنا چاہتے ہیں۔

نینٹینڈو سوئچ جوی بلیک فرائیڈے۔

ڈائمنڈ ڈٹیکٹر

چلو ایک اور سرکٹ بناتے ہیں. یہ لائٹ ایمیٹنگ ڈائیڈ (ایل ای ڈی) کا استعمال کرے گا جب نیچے ہیرے (15 بلاکس کے اندر) ہوں گے۔ یہاں آپ کی ضرورت ہے:

  • 1 ایکس بریڈ بورڈ۔
  • 1 ایکس ایل ای ڈی
  • 1 x 220 اوہم ریزسٹر
  • خاتون> مرد جمپ کیبلز۔
  • مرد> مرد جمپ کیبلز۔

یہاں سرکٹ ہے:

انوڈ (لمبی ٹانگ) کو GPIO پن 14 سے جوڑیں۔ یہ پن +5v کی طرح کام کرتا ہے۔ کیتھڈ (مختصر ٹانگ) کو زمین سے جوڑیں۔

میں نے ایک سستے اورک کھلونے کا استعمال کیا ہے اور پچھلے کور اور الیکٹرانکس کو ہٹا کر اس میں ترمیم کی ہے ، پھر میں نے اس کے نیچے ایل ای ڈی رکھی ہے۔ آپ اسے گرم گلو یا اس جیسی کسی چیز سے آسانی سے مستقل بنا سکتے ہیں۔

اس کوڈ کو بطور محفوظ کریں diamonds.py ':

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
led_pin = 14 # store the GPIO pin number
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output
while True:
# repeat indefinitely
x, y, z = mc.player.getPos()
for i in range(15):
# look at every block until block 15
if mc.getBlock(x, y - i, z) == 56:
GPIO.output(led_pin, True) # turn LED on
time.sleep(0.25) # wait
GPIO.output(led_pin, False) # turn LED off
time.sleep(0.25) # wait

جب کھلاڑی کے نیچے ڈائمنڈ ایسک بلاک ہوتا ہے (15 بلاکس کے اندر) روشنی چمکتی ہے۔

تھنک گیک مائن کرافٹ لائٹ اپ بلیو سٹون ڈائمنڈ ایسک - یقینی طور پر پگ مینوں کو دور رکھیں۔ ابھی ایمیزون پر خریدیں۔

کیا آپ نے Minecraft Pi سے کچھ ٹھنڈا کیا ہے؟ مجھے تبصرے میں بتائیں کہ آپ نے کیا کیا ہے یا آپ نے گیمز میں اسے کتنا دور کیا ہے۔

ہم امید کرتے ہیں کہ آپ ان اشیاء کو پسند کریں گے جن کی ہم تجویز کرتے ہیں اور تبادلہ خیال کرتے ہیں! MUO کی وابستہ اور سپانسر شدہ شراکت داری ہے ، لہذا ہمیں آپ کی کچھ خریداریوں سے حاصل ہونے والی آمدنی کا حصہ ملتا ہے۔ یہ اس قیمت کو متاثر نہیں کرے گا جو آپ ادا کرتے ہیں اور مصنوعات کی بہترین تجاویز پیش کرنے میں ہماری مدد کرتا ہے۔

بانٹیں بانٹیں ٹویٹ ای میل۔ کیا یہ ونڈوز 11 کو اپ گریڈ کرنے کے قابل ہے؟

ونڈوز کو دوبارہ ڈیزائن کیا گیا ہے۔ لیکن کیا یہ آپ کو ونڈوز 10 سے ونڈوز 11 میں منتقل کرنے پر راضی کرنے کے لیے کافی ہے؟

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • DIY
  • پروگرامنگ۔
  • مائن کرافٹ۔
  • راسباری پائی
  • الیکٹرانکس۔
  • ازگر۔
مصنف کے بارے میں جو کوبرن۔(136 مضامین شائع ہوئے)

جو یونیورسٹی آف لنکن یونیورسٹی سے کمپیوٹر سائنس میں گریجویٹ ہیں۔ وہ ایک پیشہ ور سافٹ وئیر ڈویلپر ہے ، اور جب وہ ڈرون نہیں اڑاتا یا موسیقی نہیں لکھتا ، تو وہ اکثر تصاویر لیتے یا ویڈیو بناتے ہوئے پایا جا سکتا ہے۔

جو کوبرن سے مزید۔

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔