แพ็คเกจที่เป็นพอร์ตของ Swisseducs Kara (หน้าเป็นภาษาเยอรมัน) Kara เป็นแนวคิดสำหรับการเข้าถึงโลกของการเขียนโปรแกรมได้อย่างง่ายดาย คาร่าเป็นเต่าทองตัวเล็ก ๆ ที่อาศัยอยู่ในป่าที่มีเห็ดต้นไม้และใบไม้ คาร่าสามารถย้ายเห็ดเดี่ยววางและลบใบไม้ไม่สามารถขยับต้นไม้และควบคุมทั้งหมดโดยใช้รหัสจูเลีย เมื่อเปรียบเทียบกับ Kara ดั้งเดิมการโต้ตอบลูกผู้ชายมุ่งเน้นไปที่การใช้ Repl
ติดตั้งภายใน Julia ในโหมด PKG Repl โดยใช้
add JuliaKaraหรือใน Julia 0.6 ในโหมด Repl โดยใช้
Pkg . add ( " JuliaKara " ) เริ่มใช้ Juliakara โดยเปิดจูเลียและเข้าสู่ using JuliaKara เข้าสู่ Repl ถัดไปสร้างโลกใหม่ของขนาด 10x10 พร้อมการผูกฟังก์ชั่นในขอบเขตทั่วโลกโดยป้อน @World (10,10)
ตอนนี้คุณสามารถใช้งานได้
move(kara) เพื่อก้าวไปสู่ทิศทางที่คาร่าหันหน้าไปทางturnLeft(kara) จะเลี้ยว Kara ไปทางซ้ายturnRight(kara) หัน Kara ไปทางขวาputLeaf(kara) วางใบไม้ใต้คาร่าและremoveLeaf(kara) เพื่อลบใบไม้ออกจากใต้ Karaและ
treeFront(kara) เพื่อตรวจสอบว่า Kara ยืนอยู่หน้าต้นไม้หรือไม่treeLeft(kara) เพื่อตรวจสอบว่ามีต้นไม้เหลืออยู่ของ Kara หรือไม่treeRight(kara) เพื่อตรวจสอบว่ามีต้นไม้ด้านขวาของ Kara หรือไม่onLeaf(kara) เพื่อตรวจสอบว่ามีใบไม้อยู่ใต้ Kara และmushroomFront(kara) เพื่อตรวจสอบว่า Kara ยืนอยู่หน้าเห็ดหรือไม่ Juliakara ตระหนักถึงไวยากรณ์ XML ที่ Kara ดั้งเดิมใช้สำหรับการจัดเก็บโลกในไฟล์ เป็นไปได้ที่จะโหลดโลกผ่าน GUI หรือกับคำสั่ง @World [path] ตรงกันข้ามกับรุ่น GUI @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ในกรณีที่หนึ่งโหลดโลกผ่าน GUI และต้องการพฤติกรรมข้างต้นการอ้างอิงถึง Kara จะต้องได้รับการฟื้นฟูโดย:
kara = get_kara (world) Juliakara สนับสนุนหลายโลกและ Karas หลายแห่ง ในกรณีที่คุณต้องการทำซ้ำตัวอย่างที่ใช้จากภายในไดเรกทอรีทดสอบของ 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) : เก็บสถานะปัจจุบันของ worldplace_kara(world,X,Y,orientation) : สถานที่ Kara ใน world ที่ X , Y orientation ที่มุ่งเน้น ทิศทางที่ถูกต้องคือ :NORTH , :EAST , :SOUTH และ :WEST orientation เป็นทางเลือกและค่าเริ่มต้นเป็น :NORTHplace_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