หลักสูตรการพัฒนา Python
บทที่
>
ระดับ
การใช้ดิกชันนารี
ฟังก์ชันที่กำหนดเองโดยใช้พจนานุกรม
วัตถุประสงค์
ใช้ฟังก์ชันที่กำหนดเองที่วนซ้ำผ่านสนามปลูก โดยปลูกและรดน้ำพืช
ในสนามมีต้นไม้หลายต้นที่ต้องปลูก ให้หยิบถุงที่มีเมล็ดพืช จากนั้นเติมน้ำบริเวณบ่อ ใช้ฟังก์ชันที่กำหนดเองร่วมกับดิกชันนารีในการวนซ้ำผ่านสนาม แล้วปลูกและรดน้ำเมล็ดพืช
หยิบถุงเมล็ดพืชซึ่งจะให้เมล็ดต้นไม้ดังต่อไปนี้ในรูปแบบดิกชันนารี: "orange : 3" , "pear : 4" , "apple : 3" , "peach : 2" . เดินไปยังเครื่องหมาย X ที่มีไฟเล็ก ๆ ข้างบ่อแล้วใช้ฟังก์ชัน collect() เพื่อเก็บน้ำ โดยเขียนโค้ดดังนี้: player.collect("water")
เมื่อคุณเก็บวัสดุที่จำเป็นทั้งหมดแล้ว ให้สร้างฟังก์ชันที่กำหนดเองชื่อ sow_field โดยใช้เมล็ดพืชและน้ำเพื่อปลูกและชลประทานสนาม ฟังก์ชันที่กำหนดเองนี้จะรับอาร์กิวเมนต์สามตัว ได้แก่ tree , loops และ direction โดยอาศัยอาร์กิวเมนต์เหล่านี้ ฟังก์ชันจะทำการวนลูป for เพื่อชลประทานสนาม
def sow_field(tree,loops,direction):
for x in range(loops):
if direction == "right":
player.move_forward(2)
player.turn_left()
player.plant(seeds,tree)
player.water()
player.turn_right()
player.move_forward()
if direction == "left":
player.move_forward()
player.turn_right()
player.plant(seeds,tree)
player.water()
player.turn_left()
player.move_forward(2)
อาร์กิวเมนต์ตัวแรก tree คือชื่อของคีย์ในดิกชันนารี ซึ่งมีค่าได้แก่ "orange" , "pear" , "apple" และ "peach" ให้เลือกชื่อที่เหมาะสมเมื่อต้องการปลูก
อาร์กิวเมนต์ถัดไป loops กำหนดจำนวนรอบที่คุณต้องการให้ฟังก์ชันทำการวนลูป ซึ่งเท่ากับจำนวนเมล็ดของแต่ละชนิดในสนาม อาร์กิวเมนต์สุดท้ายคือ direction ซึ่งมีค่าได้แก่ "left" และ "right" ให้เลือกทิศทางที่ต้องการให้ผู้เล่นเคลื่อนไหวในขณะวนลูปฟังก์ชัน
ให้เดินไปยังส่วนบนสุดของแผนที่หลังจากเก็บน้ำ แล้วใช้ฟังก์ชันที่กำหนดเองดังนี้: sow_field("orange", 3, "right") ทำเช่นนี้สำหรับเมล็ดพืชทุกชนิดเพื่อผ่านด่าน