حزمة هي منفذ Swisseducs Kara (صفحة باللغة الألمانية). كارا هي مفهوم لسهولة الوصول إلى عالم البرمجة. كارا هي خنفساء صغيرة تعيش في غابة مع الفطر والأشجار والأوراق. يمكن للكارا تحريك الفطر الواحد ، وضعه وإزالة الأوراق ، لا يمكن تحريك الأشجار ويتم التحكم فيه بالكامل باستخدام كود جوليا. بالمقارنة مع Kara الأصلي يركز Manly التفاعل على استخدام REPL.
تثبيت داخل جوليا في وضع الاستبدال PKG باستخدام
add JuliaKaraأو في جوليا 0.6 في وضع الاستبدال باستخدام
Pkg . add ( " JuliaKara " ) ابدأ في استخدام Juliakara عن طريق فتح جوليا والدخول using JuliaKara في REPL. بعد ذلك ، قم بإنشاء عالم جديد من حجم 10 × 10 مع روابط الوظائف في النطاق العالمي عن طريق إدخال @World (10,10) .
يمكنك الآن استخدام
move(kara) لاتخاذ خطوة في الاتجاه الذي تواجهه كارا ،turnLeft(kara) لتحويل كارا إلى اليسار ،turnRight(kara) لتحويل كارا إلى اليمين ،putLeaf(kara) لوضع ورقة تحت كارا وremoveLeaf(kara) لإزالة ورقة من تحت كاراو
treeFront(kara) للتحقق مما إذا كانت كارا تقف أمام شجرة ،treeLeft(kara) للتحقق مما إذا كانت هناك شجرة اليسار من كارا ،treeRight(kara) للتحقق مما إذا كانت هناك شجرة يمين كارا ،onLeaf(kara) للتحقق مما إذا كانت هناك ورقة أسفل كارا وmushroomFront(kara) للتحقق مما إذا كانت كارا تقف أمام الفطر. يدرك Juliakara بناء جملة XML يستخدمه Kara الأصلي لتخزين العوالم في الملفات. من الممكن تحميل عالم من خلال واجهة المستخدم الرسومية أو مع commandworld @World [path] . على عكس إصدار واجهة المستخدم الرسومية @World [path] يفتح نافذة جديدة ويسجلات world و kara في النطاق العالمي كمراجع.
@World " file1.world "
move (kara) # moves Kara in world from file1.world
@World " file2.world "
# kara and world referencing elements from file1.world
# are now overwritten with references to elements from file2.world
move (kara) # moves Kara in world from file2.world
# Create additional references to world and kara
world_save = world
kara_save = kara
@World " file3.world "
# kara and world referencing elements from file2.world
# are now overwritten with references to elements from file3.world
move (kara) # moves Kara in world from file3.world
# Access stored references
move (world_save,kara_save) # moves Kara in world from file2.worldفي حالة قيام المرء بتحميل عالم من خلال واجهة المستخدم الرسومية ويريد السلوك أعلاه ، يجب استعادة الإشارة إلى كارا بواسطة:
kara = get_kara (world) Juliakara يدعم عوالم متعددة وكراس متعددة. في حال كنت ترغب في إعادة إنتاج المثال ، قم بتشغيله من داخل دليل اختبار Juliakara على سبيل المثال ~/.Julia/v0.6/JuliaKara/test .
# Load the world contained in example.world.
# This also creates a macro @w1 in global scope to interact with
# the world
@World w1 " example.world "
# Create an empty world w2
@World w2 ( 10 , 2 )
# Place kara in the empty world.
# place_kara() returns a reference to the placed kara.
# @w2 place_kara(1,1) is just syntactic sugar for place_kara(w2,1,1)
kara = @w2 place_kara ( 1 , 1 )
# Kara is already placed in world w1, therefore we fetch it with get_kara()
# Since we can't create two kara references we use lara instead.
lara = @w1 get_kara ()
# Move lara a step in world w1
@w1 move (lara)
# Alternatively:
move (w1,lara)
# Move kara a step in world w2
@w2 move (kara)
# It's even possible to allow kara from world w2 to
# place something in world w1
@w1 putLeaf (kara)
reset!(world) : إعادة ضبط world إلى الدولة بعد التحميل أو آخر دعوة store!(world) .store!(world) : يخزن الوضع الحالي world .place_kara(world,X,Y,orientation) : يضع Kara in world at X و Y orientation . التوجهات الصالحة هي :NORTH ، :EAST ، :SOUTH و :WEST . orientation اختياري وافتراضيات إلى :NORTH .place_mushroom(world,X,Y) : يضع الفطر في world في X ، Yplace_tree(world,X,Y) : يضع شجرة في world في X ، Yplace_leaf(world,X,Y) : يضع ورقة في world في X ، Y الماكرو المستخدم أعلاه للتفاعل على سبيل المثال @w1 يترجم بشكل أساسي @w1 f(args...) إلى f(w1,args...) . وبالتالي ، لأن جميع الأساليب المذكورة أعلاه لها world كأول حجة لها ، يمكن أيضًا أن يطلق عليها استخدام الماكرو العالمي. هذا يعمل أيضًا للطرق المخصصة:
function turnAround (wo,ka)
turnLeft (wo,ka)
turnLeft (wo,ka)
end
@w1 turnAround (lara)تحتوي صفحة الأمثلة لـ Juliakara على مواد أخرى توضح استخدام Juliakara.