Categories
BYOB

ใส่ข้อมูลให้บล็อก square

ณ ขณะนี้บล็อก square สามารถวาดสี่เหลี่ยมได้เพียงขนาดเดียว (100 x 100) ทำอย่างไรถึงจะกำหนดขนาดสี่เหลี่ยมได้เอง เราทำได้โดยการใส่ข้อมูลกำหนดความยาวของด้านสี่เหลี่ยมให้กับบล็อก square ซึ่งจะทำให้ Alonzo เดินตามค่าที่กำหนดให้ แทนที่จะเป็น 100 เพียงอย่างเดียว

ก่อนอื่นนำเอา Block editor ออกมาก่อน ด้วยการคลิกขวาที่บล็อก square จากนั้นคลิกเลือก edit

เมื่อนำเมาส์มาวางเหนือบล็อกที่กำลังสร้างอยู่ ณ ขณะนี้มีข้อมูล square อันเดียวเป็นชื่อของบล็อกนี้ เมื่อเอาเมาส์ชี้ที่ square จะมีเครื่องหมายบวก (+) ปรากฏทั้งสองด้าน สามารถคลิกเพื่อสร้างข้อมูลเพิ่มได้อีกเหมือนกัน แต่ตำแหน่งของมันจะขึ้นกับข้อมูลที่เมาส์ชี้อยู่ (square ) ถ้าคลิกที่ตัว square เอง จะปรากฏหน้าต่างบอกรายละเอียดของข้อมูล square และถ้าไม่ต้องการข้อมูลนี้แล้ว สามารถลบทิ้งได้ ด้วยการคลิกปุ่ม Delete

เมื่อคลิกเครื่องหมายบวกอันใดอันหนึ่งจะปรากฏหน้าต่างให้สร้างชื่อข้อมูลเข้า และสามารถเลือกชนิดของข้อมูลได้ 2 แบบ คือ จะเป็นเพียงชื่อ (Title text) ใช้สื่อสารเท่านั้น หรือ จะเป็นชื่อของตัวแปร (Input name) ที่สามารถนำมาใช้ในสคริปต์ของบล็อกนี้ได้

 

เพื่อสร้างบล็อก square ให้สามารถกำหนดขนาดของด้านสี่เหลี่ยมได้ และให้บล็อกนี้สื่อกับผู้ใช้ว่าข้อมูลที่จะใส่เข้าไป เป็นข้อมูลอะไร เราต้องการข้อมูล 2 ตัว ทั้งสองแบบ คือ เลือก Input name สำหรับตัวแปร size ใช้กำหนดขนาดด้านของสี่เหลี่ยม และ เลือก Title text สำหรับข้อมูล steps ใช้บอกหน่วยของตัวแปร size

ขนาดของด้านสี่เหลี่ยม เกิดจากการเคลื่อนที่ของ Alonzo ดังนั้นเราต้องนำตัวแปร size มาใส่ในบล็อก move ด้วยการลากตัวแปร size ที่สร้างขึ้นมาใหม่ในบล็อก square มาใส่ได้เลย (เหมือนกับการลากบล็อกจากบล็อกหมวดต่างๆ ใน Scratch)

บล็อกที่สร้างใหม่ สามารถกำหนดให้เป็น atomic ซึ่งจะทำงานได้รวดเร็วเสมือนทำงานเพียงคำสั่งเดียว แต่จะทำให้ไม่เห็นการเคลื่อนไหว หรือการวาดรูป ในแต่ละขั้นตอนของสคริปต์ที่อยู่ในบล็อกนี้ ถ้าลองคลิกเลือก atomic แล้วลองใช้งานบล็อกนี้ จะเห็นความแตกต่าง เพราะทันทีที่คลิกบล็อกนี้ให้ทำงาน จะเห็นสี่เหลี่ยมถูกวาดไว้แล้วทันที และไม่เห็นการเคลื่อนไหวของ Alonzo หรือการลากเส้นเลย

One reply on “ใส่ข้อมูลให้บล็อก square”

[…] ฟังก์ชัน square สามารถวาดรูปสี่เหลี่ยม 100 x 100 ได้ขนาดเดียวทุกคร้้งที่เรียกใช้ฟังก์ชันนี้ ซึ่งไม่ค่อยยืดหยุ่น ถ้าเราต้องการสี่เหลี่ยมขนาดอื่นละ ทำได้ไหม ตามหลักการแล้ว คือการทำ Generalization ให้กับฟังก์ชัน โดยการส่งผ่านข้อมูลให้กับฟังก์ชัน เพื่อให้ฟังก์ชั่นทำงานได้ยืดหยุ่นขึ้น ไม่เฉพาะเจาะจงอยู่กับการทำงานเพียงแบบเดียว (วาดรูปสี่เหลี่ยม 100 x 100) เช่น ถ้าต้องการวาดสี่เหลี่ยมขนาดอื่นๆ ทำได้ด้วยการให้ข้อมูลขนาด (size) ให้กับฟังก์ชัน square เพื่อให้ได้สี่เหลี่ยมตามขนาดที่ใส่เข้าไปในฟังก์ชัน square (size) […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s