เกี่ยวกับบทเรียน
การเขียนโปรแกรม Scratch.
การเขียนโปรแกรมใน Scratch คือการเขียนสคริปต์ให้ตัวละครแต่ละตัวรวมทั้งเวทีทํางาน รวมกัน โดยที่ตัวละครแต่ละตัวรวมทั้งเวที สามารถมีได้หลายสคริปต์หรือไม่มีสคริปต์เลยก็ได้ สคริปต์ประกอบจากบล็อกคําสั่งเพื่อทํางาน ตามที่ออกแบบโปรแกรมไว้ รูปด้านบนเป็นสคริปต์
การสร้างสคริปต์
การเขียนโปรแกรมสคริปต์เป็นการนําบล็อกมาเรียงต่อกันอย่างมีความหมาย หลักการและ ความเข้าใจในการเขียนโปรแกรม จะทําให้ผู้เรียนเขียนสคริปต์ได้ถูกต้องตามเป้าหมาย การเขียนสคริปต์ให้กับตัวละครหรือเวที เริ่มต้นด้วยการเลือกตัวละครหรือเวทีก่อน จากนั้นคลิก แทปสคริปต์ ซึ่งเป็นพื้นที่สําหรับเขียนสคริปต์ การนําบล็อกมายังพื้นที่เขียนสคริปต์ เริ่มจากเลือกหมวดของบล็อกก่อน จากนั้นจะเห็นคลัง บล็อกคําสั่งในหมวดนั้นด้านล่าง ลากบล็อกที่ต้องการไปยังพื้นที่เขียนสคริปต์ ถ้าไม่ต้องการ บล็อกใดๆ ที่อยู่ในพื้นที่เขียนสคริปต์แล้ว ก็ลากมันกลับมายังพื้นที่ของคลังบล็อกคําสั่งได้หรือ คลิกขวาที่บล็อกนั้นแล้วเลือก delete
ข้อมูลสําหรับบล็อกคําสั่ง
บล็อกคําสั่งจะทํางานหรือทําหน้าที่อย่างใดอย่างหนึ่ง โดยที่บางบล็อกจะทํางานได้นั้นต้องรับ
ข้อมูลเพิ่มเติม บางบล็อกสามารถคืนข้อมูลได้บางบล็อกสามารถทั้งรับทั้งคืนข้อมูล ทั้งนี้ขึ้นอยู่
กับหน้าที่และวัตถุประสงค์ของแต่ละบล็อก ข้อมูลที่ใช้ในบล็อกมีหลายชนิด ได้แก่ ตัวเลข ตัวอักษร สี ข้อมูลที่อยู่ในตัวแปร ข้อมูลรายการ เช่น คีย์บอร์ด โน๊ตดนตรี ประเภทเครื่องดนตรี ตัวละครที่สร้างขึ้น ฯลฯ
ลําดับการทํางานของบล็อกที่ซ้อนกัน
ปกติบล็อกในสคริปต์จะทํางานจากบนลงล่าง ถ้าเจอบล็อกควบคุมใดๆ บล็อกที่อยู่ภายในก็จะทํางานจากบนลงล่างเหมือนกัน เมื่อบล็อกมีบล็อกอื่นซ้อนกันหลายชั้น จะเริ่มทํางานจากบล็อกด้านในสุดก่อน เปรียบเสมือนการใส่วงเล็บซ้อนกันในทางคณิตศาสตร์ ซึ่งลําดับการทํางานจะทําจากวงเล็บในสุดก่อน ถ้าอยู่ในระดับเดียวกัน จะทําจากซ้ายไปขวา เช่น เงื่อนไขจากบล็อกโอเปอร์เรชั่นที่ซ้อนกันตามรูปนี้สามารถเขียนในรูปแบบวงเล็บได้ดังนี้
((battconnected = 1) and ((Switch = 1) and (bulbconnected =1))) สคริปต์จะตรวจสอบข้อเท็จจริงจากเงื่อนไข Switch = 1 ก่อน ถัดไปตรวจสอบ bulbconnected = 1 ตามด้วยการตรวจสอบข้อเท็จจริงจากเงื่อนไข battconnected = 1 จากนั้นหาข้อเท็จจริงจากโอเปอร์เรชั่นตรรกะและ (ขวา) ระหว่างข้อเท็จจริง Switch = 1 และ bulbconnected = 1 คําตอบที่ได้นํามาหาข้อเท็จจริงสุดท้ายด้วยโอเปอร์เรชั่นตรรกะและ (ซ้าย)
กับคําตอบที่ได้จากเงื่อนไข battconnected = 1 ความช่วยเหลือการใช้บล็อก ใน Scratch มีบล็อกมากมาย จะรู้ได้อย่างไรว่ามันทํางานอย่างไร นอกจากคู่มือที่อ่านได้จากเว็บไซต์หรือไฟล์คู่มือ PDF แล้ว ในตัวโปรแกรม Scratch เองก็มีวิธีการใช้งานฉบับย่อให้ด้วยโดยการคลิกขวาบล็อกที่ต้องการรู้การทํางานของมัน ซึ่งจะเป็นบล็อกที่อยู่ในสคริปต์ หรือบล็อก ที่อยู่ในคลังบล็อกคําสั่งก็ได้ จากนั้นเลือก Help ตัวอย่างเช่น Help ของบล็อกคําสั่งเพื่อเปลี่ยนภาพฉากหลังเวทีภาพถัดไป (next background) จะได้รูปเหมือนข้างล่างนี้
ในหน้าต่าง Help จะอธิบายหลักการใช้งาน และวัตถุประสงค์ของบล็อกนี้ พร้อมทั้งตัวอย่างการใช้งานให้ดูด้วย
การต่อบล็อก
บล็อกที่สามารถเรียงต่อกันได้เมื่อลากบล็อกเข้าไปใกล้ๆ กับบล็อกเป้าหมาย จะเห็นแถบสีขาวขึ้น เป็นการบอกว่าบล็อก 2 บล็อกนี้สามารถต่อกันได้ เมื่อวางบล็อกลง บล็อกจะต่อได้สนิทกับบล็อกเป้าหมาย
บล็อกที่ต่อกันไม่ได้จะไม่เห็นแถบสีขาวนี้ และไม่สามารถบังคับให้ต่อกันได้ ถ้าวางบล็อกลงไป บล็อกจะอยู่เหลื่อมกับบล็อกเป้าหมาย แต่จะไม่ต่อกัน
โดยทั่วไป รูปร่างของบล็อกจะบงบอกอยู่แล้วว่าบล็อกสามารถต่อกันได้หรือไม่ ลองสังเกตจากสองตัวอย่างที่ผ่านมา การใช้แถบสีขาว เป็นตัวช่วยอีกอย่างหนึ่ง เพื่อลดความยากในการเขียนโปรแกรม และป้องกันการเกิดข้อผิดพลาดในไวยากรณ์ของโปรแกรมภาษา ซึ่งเกิดขึ้นบ่อยๆ ในโปรแกรมภาษาอื่น
การซ้อนบล็อก
บล็อกสามารถซ้อนกันได้หลายๆ ชั้น การซ้อนบล็อกเข้าไปข้างในของบล็อกอื่น ก็คล้ายกับการต่อบล็อก คือเมื่อลากบล็อกเข้าไปใกล้ๆ บล็อกที่ต้องการจะซ้อนบล็อกภายใน จะเห็นแถบสีขาวล้อมรอบบริเวณที่สามารถวางบล็อกได้ เป็นการบอกว่า ตําแหน่งนี้สามารถวางบล็อกได้บล็อกที่วางไม่ได้จะไม่เห็นแถบสีขาวนี้ และไม่สามารถบังคับให้วางได้ถ้าวางไปมันก็จะลอยอยู่ด้านบนแต่ไม่เข้าไปด้านในบล็อก
การนําบล็อกออก
การนําบล็อกที่ไม่ต้องการออกจากสคริปต์ ทําได้โดยคลิกเลือกบล็อกแล้วลากออกมาจากสคริปต์โดยที่ตําแหน่งของบล็อกในสคริปต์จะทําให้การดึงบล็อกออกมาได้ไม่เหมือนกัน เช่นตัวอย่าง ด้านล่างนี้
(1) เป็นสคริปต์เริ่มต้น
(2) ถ้าบล็อกที่ต้องการเอาออกอยู่ล่างสุดของสคริปต์หรือบล็อกล่างสุดที่อยู่ใน C บล็อก บล็อกนั้นบล็อกเดียวจะถูกดึงออกมา
(3) แต่ถ้าบล็อกนั้นมีบล็อกอื่นตามมาติดกัน บล็อกที่ตามมาจะถูกดึงออกมาด้วย
(4) ถ้าดึง C บล็อกออกมา บล็อกที่อยู่ภายใน C บล็อกนั้น (และบล็อกอื่นที่ต่อตาม C บล็อกด้วย) ก็จะถูกดึงออกตามมาด้วย
การรันสคริปต์ คือการสั่งให้สคริปต์ทํางาน ทําได้สองวิธี คือ รันสคริปต์เฉพาะตัวละครหรือเวที
กับ รันสคริปต์ทั้งโปรเจก (ทุกตัวละครและเวที) การรันสคริปต์ของตัวละคร (หรือเวที) ใช้ทดสอบการทํางานของสคริปต์ของตัวละครนั้นๆ (หรือเวที) ทําได้ด้วยการดับเบิ้ลคลิกที่บล็อกใดก็ได้ในสคริปต์นั้น สคริปต์ใดทํางานอยู่ จะมีเส้นสีขาว ล้อมรอบสคริปต์นั้น ในตัวอย่างนี้ ตัวละคร hungry fish มีสคริปต์กําลังทํางานพร้อมกัน 2
สคริปต์ สคริปต์แต่ละสคริปต์จะทํางานจากบนลงล่าง ถ้าสคริปต์ทํางานเพียงรอบเดียว สคริปต์จะหยุด การทํางานเองเมื่อบล็อกสุดท้ายทํางาน แต่ถ้าสคริปต์ทํางานหลายรอบ ก็จะทํางานซํ้าจนกว่าจะครบรอบตามที่กําหนดไว้ ก่อนที่จะหยุดทํางาน แต่ถ้าสคริปต์ทํางานตลอดเวลา (ในบล็อกforever) สคริปต์จะทํางานซํ้าไปเรื่อยๆ และถ้าต้องการหยุดทํางานสคริปต์นั้น ทําได้ด้วยการดับเบิลคลิกที่บล็อกใดก็ได้ของสคริปต์นั้นอีกครั้ง
แหล่งอ้างอิง : https://wuttichaiteacher.online/archives/2371?fbclid=IwAR24gUtikAaS7Gsbg_V1P4eFZAQWgM84BkwHZRAsEZHljXJ0BjRH4ikCK60
ไฟล์ตัวอย่าง