Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore 10-63-04-17-Scratch-คู่มือเพิ่อส่งเสริมความคิดสร้างสรรค์

10-63-04-17-Scratch-คู่มือเพิ่อส่งเสริมความคิดสร้างสรรค์

Published by t.panida.noisri, 2020-04-18 03:02:21

Description: 10-63-04-17-Scratch-คู่มือเพิ่อส่งเสริมความคิดสร้างสรรค์

Search

Read the Text Version

Scratch 51 การเขียนโปรแกรมสาํ หรับเดก็ คลงั่ บลอ็ กคาํ สงั่ สาํ หรบั เวที เวทไี มส่ ามารถเคล่อื นทไ่ี ด้ ทาํ ใหบ้ ลอ็ กคาํ สงั่ หมวดการเคล่อื นทไ่ี มม่ เี ลย สว่ นหมวดอน่ื ๆ กม็ ี บลอ็ กคาํ สงั่ น้อยกวา่ ของตวั ละคร เชน่ หมวดปากกามแี ต่บลอ็ กลบเทา่ นนั้ เน่ืองจากตวั ละคร เทา่ นนั้ ทว่ี าดรปู ได้ หมวดรปู รา่ งจะมบี ลอ็ กคาํ สงั่ เกย่ี วกบั ฉากหลงั เทา่ นนั้ สว่ นหมวดควบคมุ มี บลอ็ กเหมอื นกนั หมด ยกเวน้ บลอ็ ก เมอ่ื เวทถี ูกคลกิ “when Stage clicked” (ตดั มาใหด้ เู ฉพาะ สว่ นทต่ี ่างกนั )

52 kidsangsan.com สมชาย พฒั นาชวนชม บลอ็ กหมวดรบั รู้ ไมม่ บี ลอ็ กการรบั รทู้ างสมั ผสั และการรบั รรู้ ะยะทาง สว่ นบลอ็ กหมวดโอเปอรเรชนั่ หมวดเสยี ง และหมวดตวั แปรเหมอื นกนั กบั ของตวั ละคร

Scratch 53 การเขียนโปรแกรมสาํ หรับเดก็ บลอ็ กยงั ถูกแบง่ ตามรปู รา่ งและลกั ษณะการวางต่อกนั ซง่ึ มอี ยู่ 6 แบบดงั น้ี 1. Hat blocks มี 4 บลอ็ กอยใู่ นหมวดควบคุม เป็นบลอ็ กเรม่ิ ตน้ ของทุกๆ สครปิ ต์ ดา้ นบนจะโคง้ มนคลา้ ย หมวก ดา้ นลา่ งมสี ว่ นนูนยน่ื ออกมาสาํ หรบั ต่อกบั บลอ็ กทต่ี ามมา 2. Stack blocks เป็นบลอ็ กสว่ นใหญ่ทท่ี าํ งานหลกั ๆ สามารถเรยี งต่อกนั ได้ ใน Scratch มี 75 บลอ็ ก ดา้ นบน จะเวา้ สว่ นดา้ นลา่ งจะนูนทาํ ใหม้ นั วางดา้ นบน ดา้ นลา่ ง หรอื ระหวา่ งกลางบลอ็ กอน่ื ได้ 3. Boolean blocks เป็นบลอ็ กทค่ี นื คา่ คาํ ตอบถกู หรอื ผดิ มที งั้ หมด 13 บลอ็ ก อยใู่ นบลอ็ กหมวดโอเปอรเ์ รชนั่ และบลอ็ กหมวดกาํ ลงั รบั รู้ รปู รา่ งของบลอ็ กจะเป็นหกเหลย่ี มไมม่ สี ว่ นยน่ื หรอื เวา้ ใชซ้ อ้ นอยู่ ขา้ งในบลอ็ กอน่ื อกี ที สว่ นใหญ่ใชแ้ สดงเงอ่ื นไขใน C blocks หรอื Boolean blocks ดว้ ย กนั เอง

54 kidsangsan.com สมชาย พฒั นาชวนชม 4. Reporter blocks เป็นบลอ็ กทใ่ี ชค้ นื คา่ ไดท้ งั้ ตวั เลขหรอื ตวั อกั ษร มที งั้ หมด 26 บลอ็ ก โดยไมร่ วมบลอ็ กทเ่ี กดิ จากการสรา้ งตวั แปรหรอื ลสิ ตใ์ นแต่ละครง้ รปู รา่ งของบลอ็ กจะโคง้ มนไมม่ สี ว่ นยน่ื หรอื เวา้ ใช้ ซอ้ นอยขู่ า้ งในบลอ็ กอ่นื อกี ที สว่ นใหญ่ใชใ้ น Stack blocks ทต่ี อ้ งการคา่ สาํ หรบั ขอ้ มลู เขา้ นอกจากนนั้ ยงั ใชใ้ น C blocks และ Boolean blocks หรอื แมก้ ระทงั่ ใน Report blocks ดว้ ย กนั เองกม็ ี 5. C blocks มที งั้ หมด 6 บลอ็ กอยใู่ นบลอ็ กหมวดควบคุม เป็นบลอ็ กรปู รา่ งคลา้ ยตวั \"C\" ใชค้ รอบบลอ็ ก อน่ื ๆ เพอ่ื ใหท้ าํ งานตามเงอ่ื นไขหรอื ทาํ งานซ้าํ หลายๆ รอบ รปู รา่ งของบลอ็ กภายในตวั \"C\" มสี ว่ ยนูนเป็นจดุ เรมิ่ ตน้ สาํ หรบั การเชอ่ื มต่อกบั บลอ็ กทอ่ี ยภู่ ายใน ภายนอกตวั \"C\" มสี ว่ นเวา้ ดา้ นบนและสว่ นนูนดา้ นล่าง ทาํ ใหบ้ ลอ็ กเหล่าน้ีต่อดา้ นบนหรอื ดา้ นล่างกบั บลอ็ กอ่นื ไดอ้ กี 6. Cap blocks มอี ยู่ 2 บลอ็ กในหมวดควบคุม ใชส้ าํ หรบั หยดุ การทาํ งานสครปิ ต์ สว่ นบนเวา้ สว่ นล่างเรยี บ ทาํ ใหบ้ ลอ็ กเหล่าน้ีเป็นบลอ็ กสดุ ทา้ ยในสครปิ ต์ หรอื บลอ็ กสดุ ทา้ ยใน C blocks

Scratch 55 การเขียนโปรแกรมสาํ หรับเดก็ การเขยี นโปรแกรมใน Scratch การเขยี นโปรแกรมใน Scratch คอื การเขยี นสครปิ ตใ์ ห้ ตวั ละครแต่ละตวั รวมทงั้ เวทที าํ งาน รวมกนั โดยทต่ี วั ละครแต่ละตวั รวมทงั้ เวที สามารถมไี ดห้ ลายสครปิ ตห์ รอื ไมม่ สี ครปิ ตเ์ ลยกไ็ ด้ สครปิ ตป์ ระกอบจากบลอ็ กคาํ สงั่ เพอ่ื ทาํ งาน ตามทอ่ี อกแบบโปรแกรมไว้ รปู ดา้ นบนเป็นสครปิ ต์ ของตวั ละครปลา (hungry fish) ทม่ี อี ยู่ 2 สครปิ ต์ แถบสขี าวทล่ี อ้ มรอบสครปิ ตแ์ รก หมายถงึ สครปิ ตน์ ้ีกาํ ลงั ทาํ งานอยู่

56 kidsangsan.com สมชาย พฒั นาชวนชม การสร้างสคริปต์ การเขยี นโปรแกรมสครปิ ต์ เป็นการนําบลอ็ กมาเรยี งต่อกนั อยา่ งมคี วามหมาย หลกั การและ ความเขา้ ใจในการเขยี นโปรแกรม จะทาํ ใหผ้ เู้ รยี นเขยี นสครปิ ตไ์ ดถ้ กู ตอ้ งตามเป้าหมาย การเขยี นสครปิ ตใ์ หก้ บั ตวั ละครหรอื เวที เรม่ิ ตน้ ดว้ ยการเลอื กตวั ละครหรอื เวทกี อ่ น จากนนั้ คลกิ แทปสครปิ ต์ ซง่ึ เป็นพน้ื ทส่ี าํ หรบั เขยี นสครปิ ต์ การนําบลอ็ กมายงั พน้ื ทเ่ี ขยี นสครปิ ต์ เรมิ่ จากเลอื กหมวดของบลอ็ กก่อน จากนนั้ จะเหน็ คลงั บลอ็ กคาํ สงั่ ในหมวดนนั้ ดา้ นลา่ ง ลากบลอ็ กทต่ี อ้ งการไปยงั พน้ื ทเ่ี ขยี นสครปิ ต์ ถา้ ไมต่ อ้ งการ บลอ็ กใดๆ ทอ่ี ยใู่ นพน้ื ทเ่ี ขยี นสครปิ ตแ์ ลว้ กล็ ากมนั กลบั มายงั พน้ื ทข่ี องคลงั บลอ็ กคาํ สงั่ ได้ หรอื คลกิ ขวาทบ่ี ลอ็ กนนั้ แลว้ เลอื ก delete

Scratch 57 การเขียนโปรแกรมสาํ หรับเดก็ ข้อมลู สาํ หรบั บลอ็ กคาํ สงั่ บลอ็ กคาํ สงั่ จะทาํ งานหรอื ทาํ หน้าทอ่ี ยา่ งใดอยา่ งหน่ึง โดยทบ่ี างบลอ็ กจะทาํ งานไดน้ นั้ ตอ้ งรบั ขอ้ มลู เพมิ่ เตมิ บางบลอ็ กสามารถคนื ขอ้ มลู ได้ บางบลอ็ กสามารถทงั้ รบั ทงั้ คนื ขอ้ มลู ทงั้ น้ีขน้ึ อยู่ กบั หน้าทแ่ี ละวตั ถุประสงคข์ องแต่ละบลอ็ ก ขอ้ มลู ทใ่ี ชใ้ นบลอ็ กมหี ลายชนิด ไดแ้ ก่ ตวั เลข ตวั อกั ษร สี ขอ้ มลู ทอ่ี ยใู่ นตวั แปร ขอ้ มลู รายการ เชน่ คยี บ์ อรด์ โน๊ตดนตรี ประเภทเครอ่ื งดนตรี ตวั ละครทส่ี รา้ งขน้ึ ฯลฯ การใส่ข้อมลู ในบลอ็ ก บางบลอ็ กจะมแี ถบสขี าว สามารถใสข่ อ้ ความหรอื ตวั เลขได้ เชน่ บลอ็ กเคล่อื นท่ี ตอ้ งการคา่ ตวั เลขจาํ นวนกา้ วในการเคล่อื นท่ี ถา้ ตอ้ งการเปลย่ี นคา่ น้ี ใหค้ ลกิ ทแ่ี ถมสขี าว จากนนั้ พมิ พแ์ กไ้ ขขอ้ มลู แถบสขี าวน้ียงั สามารถรบั คา่ ทค่ี นื มาจากบลอ็ กอน่ื ได้ ดว้ ยการใสบ่ ลอ็ กนนั้ ลง ในแถบสขี าวโดยตรง เชน่ คา่ ตําแหน่ง x ทไ่ี ดจ้ ากบลอ็ ก บางบลอ็ กสามารถเลอื กคา่ ไดจ้ ากเมนูรายการแบบดงึ ลง เชน่ โดยคลกิ ท่ี สามเหลย่ี มจะเหน็ รายการ จากนนั้ คลกิ เลอื กรายการทต่ี อ้ งการ โดยปกติ Scratch จะป้องกนั การใสข่ อ้ มลู ไมต่ รงกบั ชนิดขอ้ มลู ทบ่ี ลอ็ กตอ้ งการ ถา้ ใสไ่ มต่ รงจะใช้ คา่ โดยปรยิ าย (Default) ทก่ี าํ กบั ไวแ้ ทน เชน่ ถา้ บลอ็ กตอ้ งการตวั เลข แต่พยายามใสต่ วั อกั ษร แทน กจ็ ะไดเ้ ลขคา่ โดยปรยิ ายทก่ี าํ กบั ไว้ แต่ถา้ ไมม่ คี า่ ใดกาํ กบั เลย กจ็ ะเป็น 0 แทน ถา้ บลอ็ ก ตอ้ งการขอ้ มลู ตวั อกั ษร ตวั เลขสามารถใสไ่ ด้ เพราะถอื วา่ เป็นตวั อกั ษรดว้ ย ถา้ ไมใ่ สเ่ ลยกไ็ ด้ เพราะชอ่ งวา่ งถอื วา่ เป็นอกั ษรวา่ งนนั้ เอง สว่ นขอ้ มลู ในรายการจะไมม่ ปี ญั หาเน่ืองจากใชว้ ธิ คี ลกิ เลอื กรายการ

58 kidsangsan.com สมชาย พฒั นาชวนชม ลาํ ดบั การทาํ งานของบลอ็ กที่ซ้อนกนั ปกตบิ ลอ็ กในสครปิ ตจ์ ะทาํ งานจากบนลงลา่ ง ถา้ เจอบลอ็ กควบคมุ ใดๆ บลอ็ กทอ่ี ยภู่ ายในกจ็ ะ ทาํ งานจากบนลงล่างเหมอื นกนั เมอ่ื บลอ็ กมบี ลอ็ กอ่นื ซอ้ นกนั หลายชนั้ จะเรม่ิ ทาํ งานจากบลอ็ ก ดา้ นในสดุ ก่อน เปรยี บเสมอื นการใสว่ งเลบ็ ซอ้ นกนั ในทางคณติ ศาสตร์ ซง่ึ ลาํ ดบั การทาํ งานจะทาํ จากวงเลบ็ ในสดุ ก่อน ถา้ อยใู่ นระดบั เดยี วกนั จะทาํ จากซา้ ยไปขวา เชน่ เงอ่ื นไขจากบลอ็ กโอ เปอรเ์ รชนั่ ทซ่ี อ้ นกนั ตามรปู น้ี สามารถเขยี นในรปู แบบวงเลบ็ ไดด้ งั น้ี ((battconnected = 1) and ((Switch = 1) and (bulbconnected =1))) สครปิ ตจ์ ะตรวจสอบขอ้ เทจ็ จรงิ จากเงอ่ื นไข Switch = 1 ก่อน ถดั ไปตรวจสอบ bulbconnected = 1 ตามดว้ ยการตรวจสอบขอ้ เทจ็ จรงิ จากเงอ่ื นไข battconnected = 1 จากนนั้ หาขอ้ เทจ็ จรงิ จากโอเปอรเ์ รชนั่ ตรรกะและ (ขวา) ระหวา่ งขอ้ เทจ็ จรงิ Switch = 1 และ bulbconnected = 1 คาํ ตอบทไ่ี ดน้ ํามาหาขอ้ เทจ็ จรงิ สดุ ทา้ ยดว้ ยโอเปอรเ์ รชนั่ ตรรกะและ (ซา้ ย) กบั คาํ ตอบทไ่ี ดจ้ ากเงอ่ื นไข battconnected = 1

Scratch 59 การเขียนโปรแกรมสาํ หรับเดก็ ความช่วยเหลือการใช้บลอ็ ก ใน Scratch มบี ลอ็ กมากมาย จะรไู้ ดอ้ ยา่ งไรวา่ มนั ทาํ งานอยา่ งไร นอกจากคมู่ อื ทอ่ี า่ นไดจ้ าก เวบ็ ไซต์ หรอื ไฟลค์ มู่ อื PDF แลว้ ในตวั โปรแกรม Scratch เองกม็ วี ธิ กี ารใชง้ านฉบบั ยอ่ ใหด้ ว้ ย โดยการคลกิ ขวาบลอ็ กทต่ี อ้ งการรกู้ ารทาํ งานของมนั ซง่ึ จะเป็นบลอ็ กทอ่ี ยใู่ นสครปิ ต์ หรอื บลอ็ ก ทอ่ี ยใู่ นคลงั บลอ็ กคาํ สงั่ กไ็ ด้ จากนนั้ เลอื ก Help ตวั อยา่ งเชน่ Help ของบลอ็ กคาํ สงั่ เพอ่ื เปลย่ี นภาพฉากหลงั เวทภี าพถดั ไป (next background) จะไดร้ ปู เหมอื นขา้ งลา่ งน้ี ในหน้าต่าง Help จะอธบิ ายหลกั การใชง้ าน และวตั ถุประสงคข์ องบลอ็ กน้ี พรอ้ มทงั้ ตวั อยา่ งการ ใชง้ านใหด้ ดู ว้ ย

60 kidsangsan.com สมชาย พฒั นาชวนชม การต่อบลอ็ ก บลอ็ กทส่ี ามารถเรยี งต่อกนั ได้ เมอ่ื ลากบลอ็ กเขา้ ไปใกลๆ้ กบั บลอ็ กเป้าหมาย จะเหน็ แถบสขี าว ขน้ึ เป็นการบอกวา่ บลอ็ ก 2 บลอ็ กน้ีสามารถต่อกนั ได้ เมอ่ื วางบลอ็ กลง บลอ็ กจะตอ่ ไดส้ นิทกบั บลอ็ กเป้าหมาย บลอ็ กทต่ี ่อกนั ไมไ่ ด้ จะไมเ่ หน็ แถบสขี าวน้ี และไมส่ ามารถบงั คบั ใหต้ ่อกนั ได้ ถา้ วางบลอ็ กลงไป บลอ็ กจะอยเู่ หล่อื มกบั บลอ็ กเป้าหมาย แต่จะไมต่ ่อกนั โดยทวั่ ไป รปู รา่ งของบลอ็ กจะบงบอกอยแู่ ลว้ วา่ บลอ็ กสามารถต่อกนั ไดห้ รอื ไม่ ลองสงั เกตจาก สองตวั อยา่ งทผ่ี า่ นมา การใชแ้ ถบสขี าว เป็นตวั ชว่ ยอกี อยา่ งหน่ึง เพอ่ื ลดความยากในการเขยี น โปรแกรม และป้องกนั การเกดิ ขอ้ ผดิ พลาดในไวยากรณ์ของโปรแกรมภาษา ซง่ึ เกดิ ขน้ึ บ่อยๆ ใน โปรแกรมภาษาอ่นื

Scratch 61 การเขียนโปรแกรมสาํ หรับเดก็ การซ้อนบลอ็ ก บลอ็ กสามารถซอ้ นกนั ไดห้ ลายๆ ชนั้ การซอ้ นบลอ็ กเขา้ ไปขา้ งในของบลอ็ กอ่นื กค็ ลา้ ยกบั การ ต่อบลอ็ ก คอื เมอ่ื ลากบลอ็ กเขา้ ไปใกลๆ้ บลอ็ กทต่ี อ้ งการจะซอ้ นบลอ็ กภายใน จะเหน็ แถบสขี าว ลอ้ มรอบบรเิ วณทส่ี ามารถวางบลอ็ กได้ เป็นการบอกวา่ ตาํ แหน่งน้ีสามารถวางบลอ็ กได้ บลอ็ กท่ี วางไมไ่ ดจ้ ะไมเ่ หน็ แถบสขี าวน้ี และไมส่ ามารถบงั คบั ใหว้ างได้ ถา้ วางไปมนั กจ็ ะลอยอยดู่ า้ นบน แต่ไมเ่ ขา้ ไปดา้ นในบลอ็ ก

62 kidsangsan.com สมชาย พฒั นาชวนชม การนําบลอ็ กออก การนําบลอ็ กทไ่ี มต่ อ้ งการออกจากสครปิ ต์ ทาํ ไดโ้ ดยคลกิ เลอื กบลอ็ กแลว้ ลากออกมาจากสครปิ ต์ โดยทต่ี ําแหน่งของบลอ็ กในสครปิ ตจ์ ะทาํ ใหก้ ารดงึ บลอ็ กออกมาไดไ้ มเ่ หมอื นกนั เชน่ ตวั อยา่ ง ดา้ นลา่ งน้ี (1) เป็นสครปิ ตเ์ รม่ิ ตน้ (2) ถา้ บลอ็ กทต่ี อ้ งการเอาออกอยลู่ า่ งสดุ ของสครปิ ต์ หรอื บลอ็ กล่างสดุ ทอ่ี ยใู่ น C บลอ็ ก บลอ็ กนนั้ บลอ็ กเดยี วจะถูกดงึ ออกมา (3) แต่ถา้ บลอ็ กนนั้ มบี ลอ็ กอ่นื ตามมาตดิ กนั บลอ็ กทต่ี ามมาจะถูกดงึ ออกมาดว้ ย (4) ถา้ ดงึ C บลอ็ กออกมา บลอ็ กทอ่ี ยภู่ ายใน C บลอ็ กนนั้ (และบลอ็ กอน่ื ทต่ี ่อตาม C บลอ็ ก ดว้ ย) กจ็ ะถูกดงึ ออกตามมาดว้ ย

Scratch 63 การเขียนโปรแกรมสาํ หรับเดก็ การรนั สคริปต์ การรนั สครปิ ตค์ อื การสงั่ ใหส้ ครปิ ตท์ าํ งาน ทาํ ไดส้ องวธิ ี คอื รนั สครปิ ตเ์ ฉพาะตวั ละครหรอื เวที กบั รนั สครปิ ตท์ งั้ โปรเจก (ทุกตวั ละครและเวท)ี การรนั สครปิ ตข์ องตวั ละคร (หรอื เวท)ี ใชท้ ดสอบการทาํ งานของสครปิ ตข์ องตวั ละครนนั้ ๆ (หรอื เวท)ี ทาํ ไดด้ ว้ ยการดบั เบล้ิ คลกิ ทบ่ี ลอ็ กใดกไ็ ดใ้ นสครปิ ตน์ นั้ สครปิ ตใ์ ดทาํ งานอยู่ จะมเี สน้ สขี าว ลอ้ มรอบสครปิ ตน์ นั้ ในตวั อยา่ งน้ี ตวั ละคร hungry fish มสี ครปิ ตก์ าํ ลงั ทาํ งานพรอ้ มกนั 2 สครปิ ต์ สครปิ ตแ์ ต่ละสครปิ ตจ์ ะทาํ งานจากบนลงล่าง ถา้ สครปิ ตท์ าํ งานเพยี งรอบเดยี ว สครปิ ตจ์ ะหยดุ การทาํ งานเองเมอ่ื บลอ็ กสดุ ทา้ ยทาํ งาน แต่ถา้ สครปิ ตท์ าํ งานหลายรอบ กจ็ ะทาํ งานซ้าํ จนกวา่ จะ ครบรอบตามทก่ี าํ หนดไว้ กอ่ นทจ่ี ะหยดุ ทาํ งาน แต่ถา้ สครปิ ตท์ าํ งานตลอดเวลา (ในบลอ็ ก forever) สครปิ ตจ์ ะทาํ งานซ้าํ ไปเรอ่ื ยๆ และถา้ ตอ้ งการหยดุ ทาํ งานสครปิ ตน์ นั้ ทาํ ไดด้ ว้ ยการ ดบั เบลิ คลกิ ทบ่ี ลอ็ กใดกไ็ ดข้ องสครปิ ตน์ นั้ อกี ครงั้

64 kidsangsan.com สมชาย พฒั นาชวนชม การรนั สครปิ ตท์ งั้ โปรเจกของทกุ ตวั ละครและเวทพี รอ้ มกนั คอื การคลกิ ปมุ่ ธงเขยี ว ทอ่ี ยมู่ มุ ขวาบนของเวที ทุกสครปิ ตข์ องทกุ ตวั ละครและเวที ทเ่ี รมิ่ ตน้ สครปิ ตด์ ว้ ยบลอ็ กธงเขยี ว จะทาํ งานพรอ้ มกนั และถา้ ตอ้ งการหยดุ การทาํ งานทงั้ โปรเจก ใหค้ ลกิ ปมุ่ แปดเหลย่ี มสแี ดง ถดั จากปมุ่ ธงเขยี ว

Scratch 65 การเขียนโปรแกรมสาํ หรับเดก็ หลกั การในการเขยี นโปรแกรม หลกั การและแนวคดิ ในการเขยี นโปรแกรมมมี ากมาย บางภาษาคอมพวิ เตอรก์ ม็ หี ลกั การและ แนวคดิ เหมอื นกนั บา้ ง ต่างกนั บา้ ง ดงั นนั้ ความเขา้ ใจในหลกั การและแนวคดิ ทม่ี ใี น Scratch สามารถนําไปประยกุ ตใ์ ชไ้ ดอ้ กี ในการเรยี นภาษาคอมพวิ เตอรอ์ ่นื ๆ ต่อไป หลกั การและแนวคดิ ทม่ี ใี น Scratch บางอยา่ งตอ้ งเอาออก เพราะอาจยากเกนิ ไปสาํ หรบั เดก็ แต่ เพยี งพอต่อการทาํ โปรเจกไดม้ ากมาย หลกั การและแนวคดิ ดงั กลา่ วมดี งั น้ี • Sequence การทาํ งานแบบเรยี งลาํ ดบั • Control flow การควบคมุ ลาํ ดบั การทาํ งาน มสี องแบบ คอื แบบวนซ้าํ (Loop) และแบบมี เงอ่ื นไข (Condition) • Parallelism การทาํ งานแบบคขู่ นาน • Operation: การประมวณผลอกั ขระขอ้ ความ (String) หรอื การคาํ นวณทางคณติ ศาสตร์ (Logic, Mathematical functions) • Input การสง่ ขอ้ มลู จากผใู้ ชใ้ หก้ บั โปรแกรมขณะทาํ งาน • Message การสง่ สารระหวา่ งตวั ละครต่างๆ และเวที • Event and event handling เหตุการณ์และการตอบสนองต่อเหตุการณ์นนั้ ๆ • Synchronization การประสานและสง่ ต่อการทาํ งาน • user interaction การตดิ ต่อและโตต้ อบระหวา่ งผใู้ ชก้ บั โปรแกรม • User interface design การออกแบบวธิ กี ารและชอ่ งทางการสอ่ื สารระหวา่ งโปรแกรม กบั ผใู้ ช้ • Variable and structured variable ตวั แปร และตวั แปรทม่ี โี ครงสรา้ ง

66 kidsangsan.com สมชาย พฒั นาชวนชม การทาํ งานแบบเรียงลาํ ดบั (Sequence) การสรา้ งโปรแกรมใน Scratch ผเู้ ขยี นโปรแกรมตอ้ งคดิ อยา่ งเป็นระบบ เกย่ี วกบั ลาํ ดบั ขนั้ ตอน การทาํ งาน เพอ่ื ใชใ้ นการสรา้ งสครปิ ต์ โดยการนําบลอ็ กคาํ สงั่ มาเรยี งต่อกนั อยา่ งมคี วามหมาย ตามเป้าหมายทว่ี างไว้ ตวั อยา่ งเชน่ การใหต้ วั ละครวาดรปู สเ่ี หลย่ี มหน่ึงรปู จะประกอบไปดว้ ยการทาํ งานยอ่ ยหลายๆ คาํ สงั่ ดว้ ยกนั นนั้ คอื การจรดปากกาลงเตรยี มวาดรปู การเคล่อื นทไ่ี ปขา้ งหน้า 50 กา้ ว จากนนั้ เปลย่ี นทศิ ทางทวนเขม็ นาฬกิ าไป 90 องศา แลว้ กเ็ คล่อื นทไ่ี ปอกี 50 กา้ ว เปลย่ี นทศิ ทางทวน เขม็ นาฬกิ าอกี 90 องศา ทาํ แบบน้ีเพมิ่ อกี 2 รอบ กจ็ ะไดก้ ารวาดรปู สเ่ี หลย่ี มหน่ึงรปู จากนนั้ จงึ ยกปากกาขน้ึ จะเหน็ ไดว้ า่ การเขยี นสครปิ ตใ์ หท้ าํ งานอะไรสกั อยา่ ง มกั จะเรมิ่ จากภาพรวมหรอื เป้าหมายกอ่ น จากนนั้ แจกแจงงานเป็นลาํ ดบั ขนั้ ตอน สรา้ งงานยอ่ ยๆ และประกอบเขา้ ดว้ ยกนั เพอ่ื ใหง้ านใหญ่ นนั้ สาํ เรจ็ ตามเป้าหมาย

Scratch 67 การเขียนโปรแกรมสาํ หรับเดก็ การควบคมุ ลาํ ดบั การทาํ งาน (Control flow) งานบางอยา่ งงา่ ยพอทจ่ี ะทาํ แบบเรยี งลาํ ดบั ลาํ ดบั การทาํ งานของสครปิ ตจ์ งึ ตรงไปตรงมา ทาํ งานเรยี งลาํ ดบั จากบลอ็ กบนสดุ ลงไปจนถงึ บลอ็ กลา่ งสดุ แต่งานบางอยา่ งมคี วามซบั ซอ้ น มากขน้ึ การทาํ งานแบบเรยี งลาํ ดบั อาจไมเ่ พยี งพอ หรอื ไมม่ ปี ระสทิ ธภาพ ดงั นนั้ จงึ มกี ารควบคมุ ลาํ ดบั การทาํ งาน อกี สองลกั ษณะเพอ่ื เพมิ่ ขดี ความสามารถในการเขยี น โปรแกรม นนั้ กค็ อื การควบคมุ ลาํ ดบั การทาํ งานแบบวนซ้าํ (Loop) และการควบคุมลาํ ดบั การ ทาํ งานแบบมเี งอ่ื นไข (Condition) โดยใชบ้ ลอ็ กทาํ ซ้าํ และบลอ็ กเงอ่ื นไข ทม่ี อี ยหู่ ลายแบบให้ เลอื กใชใ้ นบลอ็ กหมวดควบคุม

68 kidsangsan.com สมชาย พฒั นาชวนชม การควบคมุ ลาํ ดบั ทาํ งานแบบวนซาํ้ (Loop) การควบคมุ ลาํ ดบั การทาํ งานแบบวนซ้าํ เป็นการทาํ ซ้าํ งาน (บลอ็ กทอ่ี ยภู่ ายในบลอ็ กทาํ ซ้าํ ) เหมอื นเดมิ หลายๆ ครงั้ เชน่ การใหต้ วั ละครวาดรปู สเ่ี หลย่ี มนนั้ สว่ นหน่ึงของงานน้ี คอื ใหต้ วั ละครเคล่อื นทเ่ี ป็นสเ่ี หลย่ี ม ซง่ึ มลี กั ษณะการทาํ งานซ้าํ กนั คอื เคล่อื นทไ่ี ปขา้ งหน้า 50 กา้ ว จากนนั้ เปลย่ี นทศิ ทวนเขม็ นาฬกิ าไป 90 องศา ทาํ แบบน้ีซ้าํ กนั 4 รอบจะไดร้ ปู สเ่ี หลย่ี ม ถงึ แม้ การเขยี นแบบเรยี งลาํ ดบั จะตรงไปตรงมา แต่โปรแกรมจะยาวเกนิ ไป ถา้ ใชก้ ารควบคมุ ลาํ ดบั การ ทาํ งานแบบวนซ้าํ จะไดส้ ครปิ ตใ์ หมท่ ส่ี นั้ ลงและอา่ นทาํ ความเขา้ ใจไดง้ า่ ยกวา่ ดงั น้ี การควบคมุ ลาํ ดบั การทาํ งานแบบวนซ้าํ มหี ลายลกั ษณะ ตามแต่ละชนิดของบลอ็ กควบคมุ เชน่ การทาํ งานซ้าํ ทไ่ี มก่ าํ หนดจาํ นวนรอบ คอื ทาํ ไปตลอดจนกวา่ จะจบโปรแกรม การทาํ งานซ้าํ ทก่ี าํ หนดจาํ นวนรอบทแ่ี น่นอน เชน่ 10 รอบ การทาํ งานซ้าํ ทข่ี น้ึ กบั เงอ่ื นไข โดยกอ่ นจะทาํ ซ้าํ ตอ้ งตรวจสอบเงอ่ื นไขกอ่ น วา่ ยงั เป็นจรงิ อยู่ หรอื ไม่ ถา้ เงอ่ื นไขเป็นจรงิ จงึ จะทาํ ซ้าํ หรอื ถา้ เงอ่ื นไขเป็นจรงิ จงึ หยุดทาํ ซ้าํ

Scratch 69 การเขียนโปรแกรมสาํ หรับเดก็ การควบคมุ ลาํ ดบั การทาํ งานแบบมีเงือ่ นไข (Condition) เงอ่ื นไขถูกใชใ้ นการควบคมุ ทศิ ทางการทาํ งาน โดยการตดั สนิ ใจทจ่ี ะทาํ งานหรอื ไมท่ าํ หรอื ตอ้ ง เลอื กทาํ งานอยา่ งใดอยา่ งหน่ึง ขน้ึ อยกู่ บั เงอ่ื นไขเป็นตวั กาํ หนด เชน่ ถา้ เงอ่ื นไขเป็นจรงิ จะทาํ งานทอ่ี ยภู่ ายในบลอ็ กน้ี ถา้ เงอ่ื นไขเป็นจรงิ จะทาํ งานทอ่ี ยภู่ ายในสว่ นบน (ใต้ if) แต่ถา้ เป็นเทจ็ จะทาํ งานทอ่ี ยภู่ ายใน สว่ นลา่ ง (ใต้ else) เงอ่ื นไขยงั ใชค้ วบคุมการทาํ งานรวมกบั การควบคมุ แบบอ่นื อกี เชน่ ถา้ เงอ่ื นไขเป็นจรงิ จะทาํ ซ้าํ งานทอ่ี ยภู่ ายในบลอ็ กน้ี ถา้ เงอ่ื นไขเป็นจรงิ จะหยดุ ทาํ ซ้าํ งานทอ่ี ยภู่ ายในบลอ็ กน้ี ถา้ เงอ่ื นไขเป็นเทจ็ จะหยดุ การทาํ งานชวั่ คราว จนกวา่ เงอ่ื นไขจะเป็นจรงิ จงึ จะทาํ งานในลาํ ดบั ต่อไป

70 kidsangsan.com สมชาย พฒั นาชวนชม โอเปอรเ์ รชนั่ (Operation) การเขยี นโปรแกรมตอ้ งอาศยั การคาํ นวณไมม่ ากกน็ ้อย โอเปอรเ์ รชนั่ เป็นเครอ่ื งมอื ทใ่ี ชใ้ นการ คาํ นวณ หรอื การจดั การกบั ขอ้ ความตวั อกั ษรทใ่ี ชใ้ นโปรแกรม โอเปอรเ์ รชนั่ ใน Scratch เป็นโอเปอรเ์ รชนั่ พน้ื ฐาน แตก่ เ็ พยี งพอต่อการทาํ โปรเจก โอเปอรเ์ รชนั่ ทซ่ี บั ซอ้ นสามารถสรา้ งได้ ดว้ ยการประกอบโอเปอรเ์ รชนั่ พน้ื ฐานเขา้ ดว้ ยกนั ตามหลกั คณติ ศาสตร์ โอเปอรเ์ รชนั่ พชี คณติ และฟงั กช์ นั ต่างๆ โอเปอรเ์ รชนั่ ตรรกะ โอเปอรเ์ รชนั่ จดั การตวั อกั ษรและขอ้ ความ พน้ื ทส่ี ขี าวภายในบลอ็ กหมายถงึ ผใู้ ชส้ ามารถใสข่ อ้ มลู เขา้ ไปไดจ้ ากคยี บ์ อรด์ หรอื ใสบ่ ลอ็ กกไ็ ด้ พน้ื ทส่ี ขี าวทรงมนรบั คา่ เป็นตวั เลขและรบั บลอ็ กทรงมน พน้ื ทท่ี รงหกเหลย่ี มรบั ไดเ้ ฉพาะขอ้ มลู ท่ี เป็นจรงิ หรอื เทจ็ จากบลอ็ กทรงหกเหลย่ี มเทา่ นนั้ สว่ นพน้ื ทส่ี ขี าวทรงสเ่ี หลย่ี มรบั ขอ้ มลู ทเ่ี ป็น ตวั อกั ษร ทาํ ใหร้ บั ตวั เลขกไ็ ด้ (ถอื วา่ เป็นตวั อกั ษรดว้ ย) รบั บลอ็ กทรงมนและบลอ็ กทรงหก เหลย่ี มกไ็ ดด้ ว้ ย

Scratch 71 การเขียนโปรแกรมสาํ หรับเดก็ การทาํ งานแบบค่ขู นาน (Parallelism) ใน Scratch ประกอบไปดว้ ยตวั ละครต่างๆ รวมทงั้ เวที ซง่ึ สามารถทาํ งานพรอ้ มๆ กนั ได้ ณ ขณะหน่ึงๆ เรยี กการทาํ งานแบบน้ีวา่ การทาํ งานแบบคขู่ นาน ซง่ึ ใกลเ้ คยี งกบั ชวี ติ จรงิ ของคนเรา ทเ่ี กดิ การทาํ งานหลายๆ อยา่ งพรอ้ มกนั ไปในเวลาเดยี วกนั เชน่ ในงานปารต์ เ้ี ตน้ ราํ ทม่ี ผี คู้ น มากมาย บางคนกพ็ ดู คยุ กนั บางคนกก็ าํ ลงั ดม่ื กนิ อาหาร และหลายๆ คนกก็ าํ ลงั เตน้ ไป พรอ้ ม กบั เสยี งเพลงทเ่ี ปิดจากเวที ใน Scratch การทาํ งานแบบคขู่ นาน เป็นการทาํ งานจากหลายๆ สครปิ ตพ์ รอ้ มกนั แต่ละสครปิ ต์ นนั้ อาจมาจากตวั ละครเดยี วกนั กไ็ ด้ หรอื จากหลายๆ ตวั ละคร รวมทงั้ เวทกี ไ็ ด้ สครปิ ตเ์ หล่าน้ีถกู กระตุน้ ใหท้ าํ งานพรอ้ มกนั ณ ขณะหน่ึงๆ แต่ไมจ่ าํ เป็นตอ้ งเรมิ่ หรอื จบสครปิ ตพ์ รอ้ มกนั เชน่ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี วเรมิ่ ตน้ โปรแกรม สครปิ ตท์ ต่ี อบสนองตอ่ การคลกิ ธงเขยี วทุกสครปิ ตจ์ ะเรมิ่ ตน้ ทาํ งานพรอ้ มกนั แต่ขณะทส่ี ครปิ ตเ์ หล่านนั้ ทาํ งานอยู่ บางสครปิ ตก์ าํ ลงั ถูกกระตุน้ จากผใู้ ช้ เชน่ การกดคยี ห์ รอื การคลกิ ตวั ละคร ใหเ้ รมิ่ ทาํ งาน หรอื ถกู กระตุน้ จากสครปิ ตอ์ น่ื ดว้ ยการสง่ สาร บลอ็ กทค่ี วบคมุ ใหส้ ครปิ ตเ์ รม่ิ ทาํ งาน (พรอ้ มกนั ) ไดจ้ ะอยบู่ นสดุ ของสครปิ ต์ ซง่ึ มหี ลายแบบ เชน่ ตอบสนองเมอ่ื ผใู้ ชค้ ลกิ ธงสเี ขยี วเรมิ่ ตน้ โปรแกรม ตอบสนองเมอ่ื ผใู้ ชก้ ดคยี ์ (space) ต่างๆ บนคยี บ์ อรด์ ตอบสนองเมอ่ื ผใู้ ชค้ ลกิ ตวั ละครใดๆ บนเวที ตอบสนองเมอ่ื ไดร้ บั สารจากตวั ละครหรอื เวที ทเ่ี ป็นผสู้ ง่ สาร

72 kidsangsan.com สมชาย พฒั นาชวนชม การสื่อสารภายในและภายนอกของโปรแกรม ขณะโปรแกรมทาํ งาน ผใู้ ชส้ ามารตดิ ต่อสอ่ื สารกบั โปรแกรมได้ โดยการตดิ ต่อหรอื ใหข้ อ้ มลู กบั โปรแกรม ภายในโปรแกรมเอง ตวั ละครต่างๆ และเวที สามารถตดิ ต่อสอ่ื สารกนั ผา่ นการสง่ สาร หรอื แชรข์ อ้ มลู ระหวา่ งกนั การตดิ ต่อสอ่ื สารกนั ทาํ ใหเ้ กดิ เหตุการณ์ขน้ึ อยา่ งไรกต็ าม เหตุการณ์ทเ่ี กดิ ขน้ึ อาจเป็นการ สอ่ื สารทางเดยี ว ถา้ อกี ฝา่ ยไมร่ บั รถู้ งึ เหตุการณ์นนั้ ดงั นนั้ ตอ้ งมกี ารตรวจจบั รบั รถู้ งึ เหตุการณ์ท่ี สนใจ และเหตุการณ์ทถ่ี กู ตรวจจบั ไดเ้ ทา่ นนั้ จงึ จะมกี ารตอบสนองต่อเหตุการณ์นนั้ การติดต่อและให้ข้อมลู จากผใู้ ช้ (Input) ขณะโปรแกรมทาํ งาน ผใู้ ชส้ ามารถตดิ ต่อหรอื ใหข้ อ้ มลู ใหมๆ่ กบั โปรแกรมได้ โดยทาํ ไดห้ ลาย ทาง เชน่ การคลกิ ดว้ ยเมาส์ การกดคยี บ์ อรด์ การเปลย่ี นระดบั เสยี ง ผา่ นการพดู ใสไ่ มโครโฟน การปรบั คา่ ขอั มลู ของตวั แปร ผา่ นการเล่อื นสไลสเ์ ดอร์ เป็นตน้ การส่งสารระหว่างตวั ละครและเวที (Message) เวทแี ละตวั ละครต่างๆ สามารถตดิ ต่อสอ่ื สารกนั ได้ ดว้ ยการสง่ สารระหวา่ งกนั โดยเรมิ่ จากการ สรา้ งสารขน้ึ มากอ่ น จากนนั้ ตวั ละครหรอื เวทสี ามารสง่ สารออกไปได้ ดว้ ยการกระจายสารซง่ึ ไม่ ระบุผรู้ บั เวทหี รอื ตวั ละครใดทส่ี นใจรบั สารน้ี กส็ ามารถตรวจจบั สารน้ี และตอบสนองต่อสารทร่ี บั ได้

Scratch 73 การเขียนโปรแกรมสาํ หรับเดก็ การเกิดเหตกุ ารณ์ (Events) ในขณะทโ่ี ปรแกรมกาํ ลงั ทาํ งาน มเี หตุการณ์เกดิ ขน้ึ มากมายในโปรแกรม ทงั้ จากการตดิ ต่อและ โตต้ อบระหวา่ งโปรแกรมกบั ผใู้ ช้ ระหวา่ งตวั ละครกบั เวที หรอื ระหวา่ งตวั ละครดว้ ยกนั เอง เหตุการณ์ทเ่ี กดิ จากผใู้ ช้ เชน่ ผใู้ ชค้ ลกิ ธงเขยี วเรมิ่ ตน้ โปรแกรม ผใู้ ชค้ ลกิ ตวั ละคร ผใู้ ชพ้ มิ พ์ ขอ้ ความตอบคาํ ถามจากตวั ละคร เหตุการณ์ทเ่ี กดิ จากตวั ละครหรอื เวที เชน่ การชนขอบเวที ของตวั ละคร การชนหรอื การสมั ผสั กนั เองระหวา่ งตวั ละคร การสง่ สารระหวา่ งตวั ละคร เป็นตน้ การตอบสนองต่อเหตกุ ารณ์ (Event handling) เมอ่ื เหตุการณ์เกดิ ขน้ึ เหตุการณ์ทไ่ี ดร้ บั ความสนใจเทา่ นนั้ ทจ่ี ะมกี ารตอบสนองต่อเหตุการณ์ นนั้ ๆ การตอบสนองต่อเหตุการณ์นนั้ ตอ้ งอาศยั การตรวจจบั หรอื การรบั สารวา่ เหตุการณ์นนั้ ๆ เกดิ ขน้ึ หรอื ยงั ใน Scratch ใชบ้ ลอ็ กควบคมุ รปู ทรงหมวก เป็นตวั กาํ หนดวา่ เหตุการณ์ไหนไดร้ บั ความสนใจ สว่ นสครปิ ตใ์ ตบ้ ลอ็ กควบคมุ ดงั กล่าว เป็นงานทต่ี อบสนองต่อเหตุการณ์นนั้ ๆ เหตุการณ์จะไมม่ คี วามหมายเลย ถา้ ไมม่ สี ครปิ ตใ์ ดคอยตวั จบั เหตุการณ์เหล่านนั้ เชน่ ถา้ ไมม่ ี สครปิ ตใ์ ดเลยตรวจจบั และตอบสนองการคลกิ ธงเขยี ว จากผใู้ ช้ โปรแกรมท่ี เขยี นมา จะไมส่ ามารถเรมิ่ ตน้ ทาํ งานไดเ้ ลย

74 kidsangsan.com สมชาย พฒั นาชวนชม การประสานงาน (Synchronization) การทาํ งานของตวั ละครและเวที อาจเกดิ ขน้ึ พรอ้ มๆ กนั ในลกั ษณะคขู่ นาน (Parallelism) ทต่ี ่าง คนต่างทาํ งานของตนไป แต่ลกั ษณะการทาํ งานอกี แบบหน่ึง คอื การทาํ งานรว่ มกนั ทม่ี ลี าํ ดบั ขนั้ ตอนการทาํ งานระหวา่ งกนั บางครงั้ ตอ้ งคอยรบั งานจากคนอน่ื บางครงั้ ตอ้ งสง่ งานใหค้ นอน่ื ทาํ ต่อ ทกุ คนตอ้ งทาํ งานประสานกนั ใหเ้ ป็นจงั หวะเดยี วกนั เพอ่ื ใหง้ านใหญ่สาํ เรจ็ ลุรว่ งไปได้ การประสานงานใหเ้ ป็นจงั หวะเดยี วกนั คลา้ ยกบั การสง่ ไมใ้ นการวงิ่ ผลดั นกั วง่ิ คนแรกสง่ ไมใ้ ห้ นกั วง่ิ คนทส่ี องวง่ิ ต่อ จากนนั้ สง่ ไมใ้ หน้ กั วง่ิ คนถดั ไปวง่ิ ต่อ จนกระทงั้ นกั วง่ิ คนสดุ ทา้ ยวง่ิ เขา้ เสน้ ชยั การประสานงานระหวา่ งตวั ละครและเวทใี น Scratch ใชว้ ธิ กี ารสรา้ งสาร (Message) เพอ่ื ใช้ สอ่ื สารระหวา่ งกนั เปรยี บเสมอื นไมผ้ ลดั เมอ่ื ตอ้ งการสง่ สารเพอ่ื สง่ ต่อการทาํ งานระหวา่ งกนั ก็ จะสง่ กระจายสารออกไป (Broadcast) ผรู้ บั ทส่ี นใจในสารน้ี กจ็ ะรบั สารแลว้ ทาํ งานต่อไป เปรยี บเสมอื นการสง่ ไมผ้ ลดั ใหค้ นทร่ี บั ไมว้ งิ่ ต่อไปนนั้ เอง การสรา้ งและสง่ กระจายสารออกไป ทาํ ไดด้ ว้ ยบลอ็ กสง่ กระจาย การสง่ กระจาย สารทาํ ใหเ้ กดิ เหตุการณ์ขน้ึ เวทหี รอื ตวั ละครใด ทส่ี นใจรบั สารน้ี สามารถทาํ ไดโ้ ดยการเรม่ิ ตน้ สครปิ ตด์ ว้ ยบลอ็ ก งานทต่ี ามมาต่อจากบลอ็ กน้ี คอื การตอบสนองต่อ เหตุการณ์ทไ่ี ดร้ บั สารน้ี การสรา้ งสารใหมม่ าใชเ้ อง การสง่ กระจายสารทาํ ใหเ้ กดิ เหตุการณ์ขน้ึ การตอบสนองต่อสารท่ี สนใจ ทาํ ใหเ้ วทแี ละตว้ ละครต่างๆ สามารถสอ่ื สารระหวา่ งกนั ได้ และสามารถสง่ ต่อการทาํ งาน ใหส้ อดคลอ้ งกนั ได้

Scratch 75 การเขียนโปรแกรมสาํ หรับเดก็ การโต้ตอบระหว่างผใู้ ช้กบั โปรแกรม (User interaction) การโตต้ อบระหวา่ งผใู้ ชก้ บั โปรแกรม เป็นกระบวนการต่อเน่ือง ทผ่ี ใู้ ชต้ ดิ ต่อสอ่ื สารกบั โปรแกรม ดว้ ยการใหข้ อ้ มลู ในรปู แบบต่างๆ ซง่ึ ทาํ ใหเ้ กดิ เหตุการณ์ในโปรแกรม ตามลกั ษณะการใหข้ อ้ มลู นนั้ เมอ่ื โปรแกรมรบั รแู้ ละตรวจจบั เหตุการณ์ทเ่ี กดิ ขน้ึ กส็ ามารถตอบสนองต่อเหตุการณ์นนั้ ๆ ไดต้ ามทไ่ี ดเ้ ขยี นโปรแกรมเอาไว้ การโตต้ อบระหวา่ งผใู้ ชก้ บั โปรแกรม เป็นเหตุการณ์แบบหน่ึงทอ่ี าจเกดิ เมอ่ื ใดกไ็ ด้ เกดิ ชวั่ ครงั้ ชวั่ คราวกไ็ ด้ เกดิ อยา่ งต่อเน่ืองกไ็ ด้ หรอื ไมเ่ กดิ เลยกไ็ ด้ ขน้ึ กบั การออกแบบและชนิดของ โปรแกรม เชน่ โปรแกรมแอนิเมชนั่ ทผ่ี ใู้ ชอ้ าจดอู ยา่ งเดยี ว ไมโ่ ตต้ อบกบั โปรแกรมเลย โปรแกรมตอบโจทยค์ ณติ ศาสตร์ ทผ่ี ใู้ ชต้ อ้ งตอบคาํ ถามกบั โปรแกรม ดว้ ยการคลกิ เมาส์ หรอื กด คยี เ์ ลอื กคาํ ตอบ หรอื โปรแกรมเกม ทผ่ี ใู้ ชต้ อ้ งโตต้ อบกบั โปรแกรมตลอดเวลา เป็นตน้

76 kidsangsan.com สมชาย พฒั นาชวนชม การออกแบบช่องทางการติดต่อระหว่างโปรแกรมกบั ผใู้ ช้ (User interface design) โปรแกรมรบั รกู้ ารตดิ ต่อ เมอ่ื ไดร้ บั ขอ้ มลู จากผใู้ ช้ แต่จะตอบสนองเฉพาะสง่ิ ทโ่ี ปรแกรมสนใจ ซง่ึ ตอ้ งถกู เขยี นโปรแกรมไวล้ ว่ งหน้ามาแลว้ เชน่ เขยี นโปรแกรมใหร้ บั รแู้ ละตอบสนองต่อการกด คยี ์ x ถา้ ผใู้ ชก้ ดคยี ์ x โปรแกรมกจ็ ะตอบสนองตามทไ่ี ดเ้ ขยี นโปรแกรมไว้ แต่ถา้ ผใู้ ชก้ ดคยี ์ y ซง่ึ โปรแกรมไมร่ บั รกู้ ารกดคยี ์ y จงึ ไมท่ าํ อะไรตอบสนอง การรบั รแู้ ละตอบสนองต่อการกดคยี ์ x เป็นการสรา้ งชอ่ งทางใหผ้ ใู้ ชต้ ดิ ต่อสอ่ื สารกบั โปรแกรม ในขณะทก่ี ารกดคยี ์ y ไมไ่ ดเ้ ป็นชอ่ งทางตดิ ต่อระหวา่ งผใู้ ชก้ บั โปรแกรม นอกจากผใู้ ช้ จะสามารถตดิ ต่อโปรแกรมผา่ นอปุ กรณ์ต่างๆ ของคอมพวิ เตอร์ (เมาส์ คยี บ์ อรด์ ไมโครโฟน) ไดแ้ ลว้ การสรา้ งตวั ละครขน้ึ มา เพอ่ื เป็นอกี ชอ่ งทางหน่ึงใหผ้ ใู้ ชต้ ดิ ต่อกบั โปรแกรม โดยเฉพาะ กส็ ามารถทาํ ได้ โดยตวั ละครเหล่าน้ีจะอยกู่ บั ท่ี คลา้ ยปุม่ พรอ้ มจะทาํ งาน เมอ่ื ผใู้ ช้ คลกิ ทต่ี วั ละครเหล่าน้ี

Scratch 77 การเขียนโปรแกรมสาํ หรับเดก็ ตวั แปร (Variables) ตวั แปรเป็นทพ่ี กั ของขอ้ มลู อา้ งองิ ดว้ ยชอ่ื ของตวั แปร สามารถเปลย่ี นแปลงแกไ้ ขขอ้ มลู ได้ หรอื เรยี กดขู อ้ มลู ในภายหลงั ได้ ตว้ แปรขอ้ มลู ภายใน ทพ่ี รอ้ มใชง้ านไดเ้ ลย มหี ลายตวั แปร เชน่ ตวั แปรเกบ็ ขอ้ มลู คาํ ตอบจากผใู้ ช้ ตวั แปรเกบ็ คา่ ตาํ แหน่งของตวั ละคร เป็นตน้ ตวั แปรยงั ถกู สรา้ งขน้ึ มาใหมไ่ ด้ เมอ่ื มขี อ้ มลู ทต่ี อ้ งใชต้ ่อเน่ืองในโปรแกรม เชน่ เมอ่ื ตอ้ งการเกบ็ คะแนนในเกมระหวา่ งการเลน่ กส็ ามารถสรา้ งตวั แปร มาเกบ็ คะแนนได้ ตวั แปรทส่ี รา้ งขน้ึ ใหมย่ งั กาํ หนดไดว้ า่ ใหใ้ ชเ้ ฉพาะกบั ตวั ละครทส่ี รา้ งตวั แปรน้ี หรอื ใหท้ กุ ตวั ละครใชต้ วั แปรน้ี รว่ มกนั ได้ ตวั แปรยงั สามารถลดความซบั ซอ้ นของการคาํ นวณยาวๆได้ การคาํ นวณทใ่ี ชบ้ ่อยๆ ในหลายๆ แหง่ ในโปรแกรม สามารถคาํ นวณเพยี งครงั้ เดยี ว แลว้ เกบ็ ผลลพั ธไ์ วใ้ นตวั แปร จากนนั้ นําไปใช้ อกี ไดเ้ ลยไมต่ อ้ งคาํ นวณใหม่

78 kidsangsan.com สมชาย พฒั นาชวนชม ลิสต์ (List) ลสิ ตเ์ ป็นตวั แปรทใ่ี ชเ้ กบ็ ขอ้ มลู หลายๆ อยา่ งเขา้ ดว้ ยกนั อยา่ งเป็นระบบ ขอ้ มลู ลกั ษณะเดยี วกนั ควรเกบ็ ไวท้ เ่ี ดยี วกนั ใหเ้ ป็นระบบ ทาํ ใหง้ า่ ยต่อการใชง้ าน ลกั ษณะของขอ้ มลู ทเ่ี กบ็ รวมกนั อยา่ งเป็นระบบ มใี หเ้ หน็ ทวั่ ไปใน Scratch เชน่ การเกบ็ ชดุ ตวั ละคร ภาพฉากหลงั ของเวที รายการทใ่ี หเ้ ลอื กในบลอ็ กคาํ สงั่ ต่างๆ เชน่ ประเภทของเอฟเฟค ตวั โน๊ตดนตรี ชนิดเครอ่ื งดนตรี ทศิ การเคล่อื นท่ี เป็นตน้ ลสิ ตเ์ หมอื นตวั แปร สามารถสรา้ งขน้ึ ได้ เชน่ ขอ้ มลู ช่อื ของอาวุธต่างๆ ในเกม แทนทจ่ี ะเกบ็ แยกกนั ในแต่ละตวั แปร ซง่ึ จะเพมิ่ ขน้ึ เรอ่ื ยๆ เมอ่ื มอี าวธุ ใหมเ่ พมิ่ ขน้ึ ทาํ ใหย้ ากต่อการจดจาํ และ การใชง้ านตวั แปรเหลา่ นนั้ แต่ถา้ เกบ็ ในลสิ ต์ จะมเี พยี งตวั แปรลสิ ตอ์ าวุธตวั แปรเดยี ว ขอ้ มลู ช่อื ของอาวธุ จะถกู เกบ็ ไวภ้ ายในรายการของลสิ ตแ์ ทน

Scratch 79 การเขียนโปรแกรมสาํ หรับเดก็ โปรเจกใน Scratch การศกึ ษาการเขยี นโปรแกรมภาษา Scratch ในหนงั สอื เล่มน้ี เรม่ิ จากการหดั ใชง้ านตวั โปรแกรม กอ่ นในเบอ้ื งตน้ จากนนั้ เรมิ่ เรยี นรสู้ ว่ นประกอบต่างๆ เพอ่ื สรา้ งโปรเจก พรอ้ มกบั เรยี นรแู้ นวคดิ หลกั การและเทคนิคต่างๆ ในการเขยี นโปรแกรม ในสว่ นน้ีเป็นการศกึ ษาการเขยี นโปรแกรมผา่ นโปรเจกต่างๆ ทเ่ี สรจ็ เรยี บรอ้ ยแลว้ เป็นวธิ กี ารท่ี เรม่ิ จากภาพรวมของโปรเจกก่อน ผเู้ รยี นสามารถเหน็ เป้าหมายและผลลพั ธข์ องโปรเจกเป็น อยา่ งไร แลว้ แต่ละสว่ นประกอบของโปรเจกถกู สรา้ งอยา่ งไร เรยี นรกู้ ารเขยี นสครปิ ตใ์ นแต่ละตวั ละครและเวที เพอ่ื ทาํ ใหโ้ ปรเจกสมบรณู ์ไดอ้ ยา่ งไร ทุกโปรเจกทจ่ี ะเรยี นรตู้ ่อไปน้ี มาพรอ้ มกบั โปรแกรม Scratch ทาํ ใหแ้ น่ใจไดว้ า่ ถา้ ผเู้ รยี นตดิ ตงั้ โปรแกรม Scratch แลว้ จะสามารถเรยี นรทู้ ุกโปรเจกจากหนงั สอื เลม่ น้ีได้ โปรเจกใน Scratch แบ่งเป็นหมวดหมทู่ ม่ี เี ป้าหมายทช่ี ดั เจน แต่ละหมวดมหี ลายโปรเจก เมอ่ื ศกึ ษาโปรเจกหน่ึงใน แต่ละหมวดแลว้ โปรเจกทเ่ี หลอื ในหมวดนนั้ กส็ ามารถเรยี นรเู้ พม่ิ เตมิ ไดเ้ อง เมอ่ื ศกึ ษา หลากหลายโปรเจกแลว้ จะเหน็ ศกั ยภาพโดยรวมของ Scratch ผเู้ รยี นสามารถเรยี นรเู้ พม่ิ เตมิ ใน เวบ็ ไซต์ Scratch ซง่ึ มโี ปรเจกมากมายจากผใู้ ชท้ วั่ โลกไดอ้ กี และควรนําความรทู้ ศ่ี กึ ษามา ไป ต่อยอด ประยกุ ตใ์ ช้ ในการสรา้ งโปรเจกใหมอ่ ยา่ งสรา้ งสรรคด์ ว้ ยตวั เอง

80 kidsangsan.com สมชาย พฒั นาชวนชม กระบวนการทาํ งานเพื่อสร้างโปรเจกใน Scratch การสรา้ งโปรเจกใน Scratch กค็ ลา้ ยกบั การสรา้ งละครเวทเี รอ่ื งหน่งึ ซง่ึ ประกอบไปดว้ ยเวที สาํ หรบั การแสดง และตวั ละครต่างๆ เป็นสาํ คญั โดยทต่ี วั ละครแต่ละตวั กจ็ ะมบี ทบาทของมนั เอง เมอ่ื ละครเปิดฉากแต่ละตวั ละครกอ็ อกสเู่ วที ดาํ เนินเรอ่ื งราวจากตน้ จนจบ ผสู้ รา้ งโปรเจกกเ็ ปรยี บเสมอื นผสู้ รา้ งละคร ควบคมุ การสรา้ งทงั้ หมด ตงั้ แต่เขยี นเคา้ โครงของ ละคร การดาํ เนินเรอ่ื ง การจดั เวทสี ถานท่ี เลอื กนกั แสดง เขยี นบท และกาํ กบั การแสดงบนเวที นอกจากนนั้ ยงั เป็นผจู้ ดั เสอ้ื ผา้ ฉากเวที ทาํ เสยี งประกอบ และรายละเอยี ดอน่ื ๆ อกี มากมาย ดู เหมอื นจะยงุ่ ยากมากมายเกนิ กวา่ เดก็ ๆ จะทาํ ได้ แต่เชอ่ื หรอื ไมท่ มี พฒั นา Scratch ทาํ เรอ่ื ง ทงั้ หมดใหเ้ ป็นเรอ่ื งงา่ ย เป็นขนั้ เป็นตอน ทา้ ทายจนิ ตนาการของพวกเขา การสรา้ งโปรเจก เป็นกระบวนการทาํ ซ้าํ ทเ่ี รม่ิ จากสว่ นเลก็ ๆ ในแต่ละตวั ละครและเวที ขยาย ใหญ่ขน้ึ จนเป็นโปรเจกทส่ี มบรณู ์ ขณะเขยี นโปรแกรม ตอ้ งคอยตรวจสอบความถูกตอ้ งของ โปรแกรมอยา่ งสม่าํ เสมอ เพอ่ื หาขอ้ ผดิ พลาดแลว้ ทาํ การแกไ้ ข เมอ่ื มคี วามชาํ นาญมากขน้ึ ผเู้ รยี นจะเรม่ิ สงั เกตเหน็ วา่ บางสว่ นของโปรแกรมมคี วามเหมอื นหรอื คลา้ ยกนั ทงั้ จากตวั ละคร เดยี วกนั หรอื ต่างตวั ละครกนั แทนทจ่ี ะเขยี นใหมต่ งั้ แตต่ น้ ผเู้ รยี นสามารถนําสว่ นของโปรแกรม นนั้ มาใชใ้ หมไ่ ดอ้ กี หรอื นํามาปรบั เปลย่ี นใหเ้ ขา้ กบั ความตอ้ งการ ทาํ ใหล้ ดเวลาในการเขยี น โปรแกรมได้

Scratch 81 การเขียนโปรแกรมสาํ หรับเดก็ โปรเจก Aquarium การเปิ ดโปรเจก เรม่ิ ตน้ โปรเจกแรก ดว้ ยวธิ กี ารเปิดโปรเจกตวั อยา่ งในโปรแกรม Scratch โดยคลกิ ทเ่ี มนู File คลกิ เลอื ก Open ... หน้าต่าง Open Project จะปรากฎ พรอ้ มกบั โปรเจกมากมายทม่ี าตอน ตดิ ตงั้ โปรแกรม จะมปี มุ่ โฟลเ์ ดอรอ์ ยดู่ า้ นซา้ ยสดุ ตรงกลางเป็นโฟลเ์ ดอรย์ อ่ ยหรอื ไฟลโ์ ปรเจก ต่างๆ ดา้ นขวามอื จะเป็นรายละเอยี ดของโปรเจกทเ่ี ลอื ก เพอ่ื เปิดโปรเจก Aquarium ใหค้ ลกิ ปมุ่ โฟลเ์ ดอร์ Examples (1) จากนนั้ จะเหน็ โฟลเ์ ดอรย์ อ่ ยใน หมวดต่างๆ ใหเ้ ลอื กโฟลเ์ ดอร์ Animation ซง่ึ จะแสดงโปรเจกต่างๆ ในหมวดน้ี สงั เกตช่อื โฟล์ เดอรล์ า่ สดุ (Animation) ปรากฎอยทู่ ่ี (2) เมอ่ื คลกิ เลอื ก Aquarium (3) จะเหน็ รายละเอยี ดของ โปรเจกทางขวามอื (4) เป็นหน้าตาของโปรเจกน้ี (5) เป็นขอ้ มลู ผสู้ รา้ งโปรเจก วธิ ใี ชง้ าน แนวคดิ ในการสรา้ งโปรเจกน้ี และแนวคดิ ต่อยอด คลกิ ปมุ่ OK เพอ่ื เปิดโปรเจก

82 kidsangsan.com สมชาย พฒั นาชวนชม ภาพรวมของโปรเจก โปรเจก Aquarium เป็นการสรา้ งภาพเคลอ่ื นไหวหรอื แอนิเมชนั่ ในอควาเรยี ม การทาํ งานหลกั ๆ ของปลา ปลาหมกึ และแมงกระพรนุ คอื การวา่ ยน้ําไปมาแหวกวา่ ยผา่ นกอสาหรา่ ยในตูก้ ระจก แต่เพอ่ื ใหด้ สู มจรงิ เมอ่ื ชนกระจก (กรอบของเวท)ี พวกมนั จะวา่ ยกลบั และใหด้ เู ป็นธรรมชาติ มากยง่ิ ขน้ึ พวกมนั แต่ตวั จะตอ้ งมกี ารเปลย่ี นทศิ การเคล่อื นทบ่ี า้ งบางเวลา โดยทท่ี ุกๆ หน่ึง วนิ าทพี วกมนั มโี อกาสหนั กลบั ทศิ 180 องศา โอกาสการกลบั ทศิ ของพวกมนั แต่ละตวั มคี า่ ไม่ เทา่ กนั เชน่ พวกปลาต่างๆ จะมโี อกาสกลบั ทศิ อยู่ 1 ใน 6 และถา้ สงั เกตทฉ่ี ากหลงั จะเหน็ ฟองอากาศลอยขน้ึ เน่ืองจากการเปลย่ี นแปลงของฉากหลงั นนั้ เอง

Scratch 83 การเขียนโปรแกรมสาํ หรับเดก็ ตวั ละครและฉากเวที โปรเจก Aquarium มปี ลาชนิดต่างๆ อยู่ 5 ตวั ปลาหมกึ แมงกระพรนุ อยา่ งละ 1 ตวั และ สาหรา่ ย 3 กอ ฉากหลงั เป็นพน้ื ทรายกบั ฟองอากาศในน้ํา ตวั ละครใน Aquarium มอี ยหู่ ลายตวั ถา้ สนใจในตวั ละครตวั ใดตวั หน่ึง ตอ้ งเลอื กมนั ก่อน เชน่ ตอ้ งการเลอื กแมงกระพรนุ ทาํ ไดโ้ ดยการคลกิ ทแ่ี มงกระพรนุ ทอ่ี ยใู่ นรายการตวั ละคร หรอื อกี วธิ ี หน่ึงคอื การดบั เบล้ิ คลกิ ทแ่ี มงกระพรนุ ในเวที ตวั ละครทถ่ี กู เลอื ก (แมงกระพรนุ ) จะมกี รอบสฟี ้า ลอ้ มรอบอยู่ ตวั ละครทถ่ี ูกเลอื ก (แมงกระพรนุ ) จะสามารถเขยี นโปรแกรมสครปิ ตไ์ ดใ้ นแทป Scripts เพมิ่ หรอื ลดชดุ ละครไดใ้ นแทป Costumes หรอื ใสเ่ สยี งไดใ้ นแทป Sounds

84 kidsangsan.com สมชาย พฒั นาชวนชม การเลอื กเวทที าํ ไดค้ ลา้ ยกบั ตวั ละคร คอื คลกิ เวทใี นรายการตวั ละครกบั เวที หรอื ดบั เบลิ คลกิ พน้ื ทว่ี า่ งบนเวที เมอ่ื เลอื กเวทแี ลว้ จะปรากฏสฟี ้าลอ้ มรอบเวทเี ชน่ กนั เวทสี ามารถเขยี นโปรแกรมสครปิ ตไ์ ดใ้ นแทป Scripts เพม่ิ หรอื ลดฉากหลงั เวทไี ดใ้ นแทป Backgrounds หรอื ใสเ่ สยี งไดใ้ นแทป Sounds

Scratch 85 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตต์ วั ละครและเวที สคริปตข์ องปลา สครปิ ตข์ องปลาชนิดต่างๆ (Creature2 – Creature6) จะเหมอื นกนั หมด ดงั นนั้ ดสู ครปิ ตข์ อง ปลา Creature5 เป็นตวั แทนของปลาทเ่ี หลอื สครปิ ตแ์ รกทาํ ใหป้ ลาเคล่อื นทไ่ี ปเรอ่ื ยๆ ในตูป้ ลา และเมอ่ื ชนผนงั (ขอบของเวท)ี กจ็ ะเปลย่ี นทศิ ทางการเคล่อื นท่ี ดว้ ยการสะทอ้ นกลบั ออกมา สครปิ ตเ์ รม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงสเี ขยี วเรม่ิ ตน้ ทาํ งาน สครปิ ต์ ตามดว้ ยบลอ็ กควบคมุ ตลอดเวลา (forever) เพอ่ื ใหป้ ลาวา่ ยน้ําไปเรอ่ื ยๆ ปลาจะ เคล่อื นท่ี (move 1 steps) ไปชา้ ๆ (ทลี ะ 1) และตรวจสอบตวั เองวา่ ชนกรอบของเวทหี รอื ยงั ถา้ ชนมนั จะสะทอ้ นกลบั (if on edge, bounce)

86 kidsangsan.com สมชาย พฒั นาชวนชม สว่ นสครปิ ตท์ ส่ี องทาํ ใหป้ ลาดเู ป็นธรรมชาตมิ ากขน้ึ ดว้ ยการเปลย่ี นทศิ วา่ ยกลบั ไปกลบั มา เหมอื นอยใู่ นตูป้ ลาจรงิ ๆ สครปิ ตน์ ้ีเรม่ิ ทาํ งานพรอ้ มกบั สครปิ ตแ์ รกเมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว การ เปลย่ี นทศิ เกดิ ขน้ึ ไดต้ ลอดเวลา ดงั นนั้ จงึ ใชบ้ ลอ็ กตลอดเวลาควบคมุ การทาํ งาน การเปลย่ี นทศิ ขน้ึ อยกู่ บั เงอ่ื นไข (บลอ็ กถา้ if) จากการสมุ่ ตวั เลข (pick random) ตงั้ แต่ 1 ถงึ 6 ถา้ เลขสมุ่ ได้ เทา่ กบั 1 เงอ่ื นไขจะเป็นจรงิ แสดงวา่ ปลามโี อกาสในการกลบั ทศิ อยู่ 1 ใน 6 เมอ่ื เงอ่ื นไขเป็นจรงิ ปลาจะหนั กลบั 180 องศา (turn 180 degrees) การตรวจสอบเงอ่ื นไขเพอ่ื การเปลย่ี นทศิ จะ เกดิ ขน้ึ ทกุ ๆ 1 วนิ าที โดยใชบ้ ลอ็ กคอย (wait 1 sec) ในการจบั เวลา สคริปตข์ องปลาหมกึ สครปิ ตข์ องปลาหมกึ (Creature7) คลา้ ยกบั ของปลามาก สครปิ ตแ์ รกนนั้ เหมอื นกบั สครปิ ตแ์ รก ของปลาเลย สว่ นสครปิ ตท์ ส่ี องกแ็ ทบจะเหมอื นสครปิ ตท์ ส่ี องของปลาอกี เหมอื นกนั เพยี งแต่ โอกาสในการกลบั ทศิ อยทู่ ่ี 1 ใน 3 (pick random 1 to 3 = 1)

Scratch 87 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องแมงกระพรนุ สครปิ ตข์ องแมงกระพรนุ มอี ยู่ 3 สครปิ ต์ แต่กค็ ลา้ ยกบั สครปิ ตข์ องปลาเชน่ กนั สครปิ ตแ์ รกเป็น การใชเ้ อฟเฟคเพอ่ื ทาํ ใหต้ วั เองโปรง่ แสง โดยการใชบ้ ลอ็ กเอฟเฟคลอ่ งหน (ghost) ดว้ ยคา่ ท่ี 35 (set ghost effect to 35) สครปิ ตท์ ส่ี องนนั้ เหมอื นกบั สครปิ ตแ์ รกของปลาเลย สว่ นสครปิ ตท์ ส่ี ามกค็ ลา้ ยกบั สครปิ ตท์ ส่ี อง ของปลาอกี เหมอื นกนั เพยี งแต่โอกาสในการกลบั ทศิ อยทู่ ่ี 1 ใน 10 (pick random 1 to 10 = 1)

88 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องสาหร่าย หน้าทข่ี องสาหรา่ ย คอื ทาํ ใหต้ ปู้ ลาดมู มี ติ ลิ กึ เขา้ ไป ดว้ ยการกาํ หนดตําแหน่งในแนวลกึ ของตู้ ปลา (เลเยอร์ Layer) ใหก้ บั สาหรา่ ยแต่ละกอ เพอ่ื ทาํ ใหด้ เู หมอื นวา่ สาหรา่ ยอยลู่ กึ คนละตําแหน่ง ในตปู้ ลา สครปิ ตข์ องสาหรา่ ยแต่ละกอเรม่ิ ตน้ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว สาหรา่ ย plant1 จะเคล่อื นไป ทเ่ี ลเยอรห์ น้าสดุ กอ่ น (go to front) จากนนั้ ยา้ ยถอยหลงั ไป 2 เลเยอร์ (go back 2 layers) สาหรา่ ย plant2 ทาํ คลา้ ยกนั แต่ถอยหลงั ไป 4 เลเยอร์ สว่ นสาหรา่ ย plant3 กท็ าํ เชน่ กนั แต่ ถอยหลงั ดว้ ยการสมุ่ คา่ ระหวา่ ง 1 ถงึ 7 เลเยอรใ์ น Scratch เป็นการกาํ หนดตาํ แหน่งความลกึ แบบงา่ ยๆ ไมซ่ บั ซอ้ นอะไร เลเยอรท์ ม่ี ี ตวั เลขมาก กจ็ ะอยลู่ กึ เขา้ ไปดา้ นในของจอคอมพวิ เตอร์ การกาํ หนดเลเยอรท์ าํ ใหต้ วั ละครเสมอื น อยใู่ นโลกสามมติ ิ ตวั ละครจะมกี ารเหล่อื มล้าํ กนั ตวั ละครทอ่ี ยเู่ ลเยอรด์ า้ นหน้า (ตวั เลขน้อย) ก็ จะบงั ตวั ละครทอ่ี ยเู่ ลเยอรล์ กึ ลงไป (ตวั เลขมาก)

Scratch 89 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องเวที สครปิ ตเ์ วทสี ว่ นใหญ่มกั จะเกย่ี วกบั ฉากหลงั ของเวที (Backgrounds) สครปิ ตข์ องเวทใี นโปรเจก Aquarium ถกู เขยี นขน้ึ เพอ่ื ใหเ้ หน็ การเคล่อื นไหวของฟองอากาศตลอดเวลา โดยการเปลย่ี นฉาก หลงั ของเวที จากสครปิ ตจ์ ะเหน็ วา่ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี วแลว้ ฉากหลงั จะเปลย่ี นเป็นภาพถดั ไปทล่ี ะภาพ (next background) สลบั วนกนั ไป (ใชบ้ ลอ็ กตลอดเวลา forever) ตลอดทกุ ๆ 1 วนิ าที (จบั เวลาดว้ ย บลอ็ ก wait) จนกวา่ โปรแกรมจะหยดุ การเปลย่ี นแปลงของฉากเป็นการแสดงแอนิเมชนั่ งา่ ยๆ เพอ่ื ทาํ ใหเ้ หน็ ฟองอากาศลอยขน้ึ ตลอดเวลา บลอ็ ก next background ใชส้ าํ หรบั เปลย่ี นภาพฉากหลงั ตามลาํ ดบั ของภาพ เชน่ ในกรณนี ้ี มี ฉากหลงั 3 ภาพ และปจั จุบนั แสดงภาพท่ี 1 ทกุ ครงั้ ทใ่ี ชบ้ ลอ็ ก next background ภาพทจ่ี ะ แสดงถดั ไปคอื ภาพท่ี 2 ภาพถดั ไปคอื ภาพท่ี 3 จากนนั้ จะวนกลบั ไปภาพท่ี 1 อกี ครงั้ ลาํ ดบั ภาพ จะเป็นเชน่ น้ีไปเรอ่ื ยๆ เมอ่ื ยงั ใชค้ าํ สงั่ น้ีอยู่

90 kidsangsan.com สมชาย พฒั นาชวนชม แอนิเมชนั่ จากการเปลี่ยนภาพฉากหลงั ฉากเวทสี ามารถทาํ แอนิเมชนั่ แบบงา่ ยๆ ดว้ ยการเปลย่ี นภาพฉากหลงั เชน่ ในกรณนี ้ี มภี าพฉาก หลงั อยู่ 3 ภาพ ทแ่ี ตกกนั ในสว่ นของฟองอากาศ เมอ่ื เปลย่ี นภาพฉากหลงั ทลี ะภาพ ต่อเน่ืองกนั ไป จะเหน็ ฟองอากาศลอยขน้ึ ตลอดเวลา เน่ืองจากมภี าพทใ่ี ชแ้ สดงแอนิเมชนั่ อยา่ งจาํ กดั เพอ่ื แลกกบั การใชข้ อ้ มลู ทน่ี ้องลง ทาํ ใหก้ าร เปลย่ี นแปลงภาพเกดิ ขน้ึ รวดเรว็ เกนิ ไป จนดไู มท่ นั ดงั นนั้ ตอ้ งหน่วงเวลาการเปลย่ี นแปลงภาพ ดว้ ยบลอ็ ก wait ซง่ึ เป็นคาํ สงั่ หยดุ ทาํ งานชวั่ คราว ตามระยะเวลาทก่ี าํ หนด

Scratch 91 การเขียนโปรแกรมสาํ หรับเดก็ การต่อยอดโปรเจก Aquarium การศกึ ษาโปรเจกทม่ี อี ยแู่ ลว้ ทาํ ใหเ้ ราไดเ้ รยี นรกู้ ารเขยี นโปรแกรม จากมมุ มองของคนอน่ื ไดฝ้ ึก อา่ นโปรแกรม และแนวคดิ เบอ้ื งหลงั ของโปรเจกนนั้ ๆ วธิ นี ้ียงั ชว่ ยใหม้ อื ใหมห่ ดั เขยี นโปรแกรม เรม่ิ ตน้ หดั เขยี นโปรแกรมดว้ ยการต่อยอดจากโปรเจกเดมิ โดยไมต่ อ้ งเรมิ่ จากศนู ย์ คาํ แนะนํา ต่อไปน้ีเป็นตวั อยา่ ง เพอ่ื ดวู า่ จะต่อยอดโปรเจกน้ีไดอ้ ยา่ งไรบา้ ง • สงั เกตวา่ เหลา่ ปลา ปลาหมกึ และแมงกระพรนุ ต่างเคล่อื นทไ่ี มห่ ยดุ เลย ทาํ อยา่ งไรให้ มนั หยดุ บา้ ง เคล่อื นทบ่ี า้ ง • พวกมนั เคล่อื นทด่ี ว้ ยความเรว็ เทา่ กนั หมด ดแู ลว้ งว่ งนอน ทาํ อยา่ งไรใหม้ นั เคล่อื นทด่ี ว้ ย ความเรว็ ต่างกนั หรอื แต่ละตวั สามารถใชค้ วามเรว็ ทต่ี ่างกนั ได้ • เพม่ิ ความหลากหลายในการเคล่อื นทข่ี องปลา แทนทจ่ี ะใชก้ ารสมุ่ เพอ่ื เปลย่ี นทศิ ลองให้ พวกมนั เคล่อื นทไ่ี ปพรอ้ มๆ กบั การเปลย่ี นทศิ โดยการใชบ้ ลอ็ กเปลย่ี นทศิ ทางคกู่ บั บลอ็ กเคล่อื นท่ี ทดลองเปลย่ี นคา่ ต่างๆ ดวู า่ คา่ ไหนทท่ี าํ ใหป้ ลาเคล่อื นทเ่ี ป็นธรรมชาติ มากขน้ึ จะเหน็ วา่ การปรบั เปลย่ี นโปรแกรมใน Scratch นนั้ ทาํ ไดง้ า่ ย และทส่ี าํ คญั เหน็ ผลไดแ้ ทบทนั ที ทาํ ใหก้ ารเรยี นเขยี นโปรแกรมใน Scratch ไมย่ ากเหมอื นภาษาอ่นื

92 kidsangsan.com สมชาย พฒั นาชวนชม โปรเจก MadLibs โปรเจก MadLibs เป็นการเลา่ เรอ่ื ง (Story telling) ทม่ี กี ารโตต้ อบกบั ผใู้ ช้ กอ่ นจะเขา้ สกู่ ารเลา่ เรอ่ื ง เรม่ิ ตน้ เปิดโปรเจก MadLibs ดว้ ยการคลกิ เมนู File เลอื ก Open จากนนั้ คลกิ ปมุ่ Examples เลอื กโฟลเ์ ดอร์ Stories เลอื กโปรเจก MadLib ภาพรวมโปรเจก MadLibs เป็นการเลา่ เรอ่ื ง ทม่ี ผี หู้ ญงิ เป็นผดู้ าํ เนินเรอ่ื ง เรม่ิ ตน้ ดว้ ยการถามตอบกบั ผใู้ ช้ จากนนั้ ขอ้ มลู คาํ ตอบจากผใู้ ชจ้ ะถกู สง่ ต่อใหก้ บั วาฬ 2 ตวั นําออกมาเล่าเรอ่ื งตลกผกู กบั คาํ ตอบทไ่ี ดม้ า วาฬทงั้ สองตวั มกี ารสง่ ต่อบทบาทและบทพดู ระหวา่ งกนั พรอ้ มกบั แสดงแอนิแมชนั่ เสยี ง ประกอบ และเอฟเฟคบนฉากหลงั เพอ่ื เพมิ่ สสี รรใหก้ บั การเลา่ เรอ่ื ง

Scratch 93 การเขียนโปรแกรมสาํ หรับเดก็ ตวั ละครและฉากเวที ตวั ละครมเี พยี งผหู้ ญงิ เป็นผดู้ าํ เนินเรอ่ื ง วาฬตวั ใหญ่และวาฬตวั เลก็ เป็นผเู้ ลา่ เรอ่ื ง และฉากเวที เป็นววิ ทวิ ทศั น์ สคริปตต์ วั ละครและเวที สคริปตข์ องผดู้ าํ เนินเรอ่ื ง สครปิ ตข์ องผหู้ ญงิ ซง่ึ เป็นผดู้ าํ เนินเรอ่ื ง เรม่ิ ตน้ ดว้ ยการพดู เกรน่ิ ก่อนจะถามตอบกบั ผใู้ ช้ คาํ ตอบ จากผใู้ ชจ้ ะถูกเกบ็ ไว้ แลว้ สง่ ต่อใหว้ าฬ 2 ตวั เป็นผเู้ ล่าเรอ่ื งต่อไป สครปิ ตเ์ รมิ่ เมอ่ื ผใู้ ชค้ ลกิ ธงสเี ขยี ว เป็นการเรมิ่ ตน้ การเลา่ เรอ่ื ง โดยผดู้ าํ เนินเรอ่ื งไดพ้ ดู เกรน่ิ สาม ประโยคๆ ละ 2 วนิ าที ดว้ ยบลอ็ กพดู (say)

94 kidsangsan.com สมชาย พฒั นาชวนชม จากนนั้ เป็นการถามตอบกบั ผใู้ ช้ โดยถามผใู้ ชด้ ว้ ยบลอ็ กถาม (ask) แลว้ รอคาํ ตอบจากผใู้ ช้ เมอ่ื ผใู้ ชพ้ มิ พค์ าํ ตอบและกดคยี ์ Enter แลว้ คาํ ตอบจะถูกเกบ็ ไวท้ ต่ี วั แปรภายในช่อื answer เน่ืองจากทุกครงั้ ทม่ี กี ารถามตอบ คาํ ตอบใน answer จะถกู แทนทด่ี ว้ ยคาํ ตอบใหมล่ า่ สดุ เสมอ เพราะฉนนั้ ถา้ ตอ้ งการนําแตล่ ะคาํ ตอบมาใชภ้ ายหลงั ตอ้ งสรา้ งตวั แปรใหม่ มาเกบ็ คา่ คาํ ตอบนนั้ แทน โปรเจกน้ีสรา้ งตวั แปรมา 4 ตวั คอื action name thing1 และ thing2 เพอ่ื เกบ็ แต่ละคาํ ตอบของ ผใู้ ช้ เมอ่ื ไดค้ าํ ตอบทงั้ หมดแลว้ กจ็ ะเรม่ิ การเลา่ เรอ่ื ง ดว้ ยการสง่ สาร start story ใหว้ าฬ 2 ตวั ออกมาเลา่ เรอ่ื งผกู กบั คาํ ตอบทไ่ี ดร้ บั มาในตวั แปรทงั้ ส่ี การถามตอบกบั ผใู้ ช้ การโตต้ อบระหวา่ งผใู้ ชก้ บั โปรแกรม มหี ลายวธิ ี เชน่ การคลกิ เมาส์ การกดคยี บ์ อรด์ การใชเ้ สยี ง เป็นตน้ ในโปรเจกน้ีผดู้ าํ เนินเรอ่ื งมกี ารถามตอบกบั ผใู้ ช้ คาํ ถามจะปรากฎบนเวที ผใู้ ชต้ อบผา่ น คยี บ์ อรด์ โปรแกรมจะรอรบั คาํ ตอบ และรอจนกวา่ ผใู้ ชจ้ ะกดคยี ์ Enter หรอื คลกิ เครอ่ื งหมายถกู คาํ ตอบทไ่ี ดจ้ ะถกู เกบ็ ไวใ้ นตวั แปร คาํ ตอบ จะถกู แชรร์ ะหวา่ งตวั ละครทกุ ตวั และจะเปลย่ี นแปลงทกุ ครงั้ ทใ่ี ชบ้ ลอ็ กคาํ ถาม ถา้ ตอ้ งการเกบ็ คาํ ตอบปจั จุบนั ไว้ ตอ้ งเกบ็ ไวใ้ นตวั แปรอ่นื ทส่ี รา้ งขน้ึ มาใหม่ เชน่ ตอ้ งการเกบ็ คา่ ในตวั แปร answer ในตวั แปร name โดยใชบ้ ลอ็ ก ตวั แปร name เป็นตวั แปรหน่ึงในรายการตวั แปรทส่ี รา้ งโดยผใู้ ช้

Scratch 95 การเขียนโปรแกรมสาํ หรับเดก็ ความแตกต่างในการถามตอบระหว่างตวั ละครกบั เวที ถา้ คาํ ถามมาจากตวั ละคร คาํ ถามจะถูกพดู จากตวั ละคร และจะปรากฎกรอบใหผ้ ใู้ ชพ้ มิ พเ์ พอ่ื ตอบคาํ ถาม ดา้ นล่างของเวที แต่ถา้ คาํ ถามมาจากเวที คาํ ถามจะปรากฎในกรอบการถามตอบ ดา้ นลา่ งของเวที

96 kidsangsan.com สมชาย พฒั นาชวนชม การสรา้ งตวั แปร วธิ สี รา้ งตวั แปรนนั้ ใหเ้ ลอื กบลอ็ กหมวดตวั แปร จากนนั้ คลกิ ปุม่ สรา้ งตวั แปร (Make a variable) คาํ ถามทผ่ี ดู้ าํ เนินเรอ่ื งถาม ตอ้ งการ 4 คาํ ตอบ ดงั นนั้ ตอ้ งสรา้ งตวั แปรมา 4 ตวั ตวั แปรตอ้ งมชี ่อื เพอ่ื เรยี กใชภ้ ายหลงั ชอ่ื ตวั แปรทงั้ 4 นนั้ คอื action name thing1 และ thing2 เมอ่ื สรา้ งตวั แปรแลว้ จะเกดิ บลอ็ กใหมส่ าํ หรบั ตวั แปรทงั้ 4 ในบลอ็ กหมวดตวั แปร โดยดา้ นหน้า ของบลอ็ กเหล่าน้ี จะมกี ล่องสเ่ี หลย่ี มทส่ี ามารถคลกิ เลอื กได้ ถา้ คลกิ เลอื กจะมเี ครอ่ื งหมายถกู ปรากฎ และจะทาํ ใหต้ วั แปรน้ีแสดงคา่ ปจั จบุ นั ของมนั บนเวที การกาํ หนดคา่ ใหต้ วั แปร ใหใ้ ชบ้ ลอ็ กตงั้ คา่ (set) โดยเลอื กช่อื ตวั แปรทต่ี อ้ งการกอ่ น (จาก รายการตวั แปรทงั้ หมดทถ่ี ูกสรา้ งขน้ึ ) จากนนั้ กาํ หนดคา่ ใหม้ นั ซง่ึ คา่ นนั้ อาจเป็นตวั เลขหรอื ตวั อกั ษร ทพ่ี มิ พเ์ ขา้ ไปตรงๆ ในชอ่ งวา่ ง หรอื ใชค้ า่ ทอ่ี ยใู่ นบลอ็ กตวั แปรกไ็ ด้ เชน่ บลอ็ กตวั แปร answer

Scratch 97 การเขียนโปรแกรมสาํ หรับเดก็ การแชรข์ ้อมลู ขณะทส่ี รา้ งตวั แปร ยงั สามารถกาํ หนดตวั แปรใหเ้ ป็นตวั แปรสว่ นตวั ได้ โดยคลกิ เลอื ก For this sprite only เพอ่ื ใชใ้ นตวั ละครตวั ทส่ี รา้ งตวั แปรน้ีเทา่ นนั้ หรอื กาํ หนดตวั แปรใหเ้ ป็นตวั แปร สว่ นรวมได้ โดยคลกิ เลอื ก For all sprites เพอ่ื ใหท้ กุ ตวั ละคร รวมทงั้ เวที สามารถใชต้ วั แปรน้ีได้ ถา้ ใหท้ ุกตวั ละครและเวทใี ชต้ วั แปรได้ ตวั แปรทส่ี รา้ งขน้ึ ใหม่ จะปรากฎอยใู่ นบลอ็ กหมวดตวั แปร ของทกุ ตวั ละคร รวมทงั้ เวทดี ว้ ย วธิ นี ้ีเป็นการแชรข์ อ้ มลู ระหวา่ งตวั ละครต่างๆ และเวที เหมอื น ในโปรเจกน้ี ตวั แปรทใ่ี ชเ้ กบ็ คาํ ตอบนนั้ เป็นตวั แปรสว่ นรวมทผ่ี ดู้ าํ เนินเรอ่ื งสรา้ งขน้ึ แลว้ วาฬ สองตวั สามารถเอาไปใชไ้ ดข้ ณะเล่าเรอ่ื ง

98 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องวาฬตวั ใหญ่และวาฬตวั เลก็ วาฬตวั ใหญ่และวาฬตวั เลก็ จะเลา่ เรอ่ื งสลบั กนั ไปมา จากคาํ ตอบทไ่ี ดร้ บั จากผดู้ าํ เนินเรอ่ื ง เพอ่ื เพม่ิ สสี นั ในการเลา่ เรอ่ื ง วาฬทงั้ สองจะแสดงแอนิเมชนั่ ไปดว้ ย เพอ่ื ใหเ้ หน็ ภาพการสง่ ต่อการทาํ งานระหวา่ งวาฬทงั้ สองตวั จงึ มาดสู ครปิ ตข์ องวาฬทงั้ สองตวั ไป พรอ้ มๆ กนั เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว วาฬทงั้ สองตวั จะซ่อนตวั ดว้ ยบลอ็ กซอ่ น (hide) จากนนั้ เมอ่ื วาฬทงั้ สองตวั ไดร้ บั สาร start story จากบลอ็ กรบั สาร (when I receive start story) วาฬตวั ใหญ่จะเปลย่ี นชดุ เป็น whale basic วาฬทงั้ สองตวั จะถกู กาํ หนดวางไวน้ อกเวทดี ว้ ยบลอ็ กไปยงั ตาํ แหน่ง (x, y) สงั เกตตาํ แหน่งของวาฬทงั้ สองตวั วา่ เกนิ ขอบเวทแี ลว้ (กรอบเวทมี ขี นาดท่ี -240 <= x <= 240, -180 <= y <= 180) จากนนั้ วาฬทงั้ สองตวั กเ็ ปิดตวั ออกมา (show) พรอ้ มกบั เคล่อื นทไ่ี ปยงั ตาํ แหน่งทก่ี าํ หนดไวภ้ ายใน 1 วนิ าทพี รอ้ มกนั (glide 1 secs to x: y: ) ก่อนทว่ี าฬตวั ใหญ่จะสง่ สาร story 1 ออกมา เพอ่ื เรม่ิ ตน้ เล่าเรอ่ื ง การสนทนาระหวา่ งวาฬทงั้ สองตวั จะสลบั กนั พดู โดยเมอ่ื วาฬตวั หน่ึงพดู จบ กจ็ ะสง่ สารบอกวาฬ อกี ตวั หน่ึงใหพ้ ดู ต่อ โดยเรม่ิ จากวาฬตวั ใหญ่กอ่ น เพราะเป็นผรู้ บั สาร story 1 จากการสง่ สารถงึ ตวั เอง

Scratch 99 การเขียนโปรแกรมสาํ หรับเดก็ เมอ่ื วาฬตวั ใหญ่ไดร้ บั สาร story 1 จะเรม่ิ สครปิ ตด์ ว้ ยการเปลย่ี นชุด (switch to costume) เป็น whale happy1 จากนนั้ พดู หน่ึงประโยคกอ่ นจะแสดงแอนิเมชนั่ ดใี จ แลว้ พดู ต่อ โดยนําขอ้ มลู ใน thing1 มารวมในคาํ พดู ดว้ ย โดยใชบ้ ลอ็ กเชอ่ื มคาํ (join) แลว้ สง่ สาร story 2 เพอ่ื ใหว้ าฬตวั เลก็ ไดพ้ ดู ต่อ เมอ่ื วาฬตวั เลก็ ไดร้ บั สาร story 2 กจ็ ะพดู ตอบวาฬตวั ใหญ่ โดยนําขอ้ มลู ใน action มารวมใน คาํ พดู ดว้ ย โดยใชบ้ ลอ็ กเช่อื มคาํ (join) แลว้ สง่ สาร story 3 เพอ่ื ใหว้ าฬตวั ใหญ่ไดพ้ ดู ต่อ เน่ืองจากขอ้ มลู ใน action อยรู่ ะหวา่ งประโยค จงึ ตอ้ งเช่อื มคาํ สองครงั้ โดยใชบ้ ลอ็ กเชอ่ื ม (join) ซอ้ นกนั

100 kidsangsan.com สมชาย พฒั นาชวนชม แอนิเมชนั่ จากการเปล่ียนชดุ ตวั ละคร ระหวา่ งการสนทนาของวาฬทงั้ สองตวั วาฬตวั ใหญ่แสดงแอนิเมชนั่ ดใี จ โดยใชเ้ ทคนิคการ เปลย่ี นชุด (switch to costume) สลบั ไปมาระหวา่ งชุด whale happy2 กบั ชุด whale happy1 จาํ นวน 3 ครงั้ ภายในบลอ็ กควบคุมทาํ ซ้าํ (repeat) สงั เกตวา่ ในแอนิเมชนั่ จะมบี ลอ็ กคอย (wait) หลายแหง่ ทงั้ น้ีเพราะแอนิเมชนั่ จะเกดิ ขน้ึ เรว็ ไป มองไมท่ นั จงึ ตอ้ งหน่วงเวลาดว้ ยบลอ็ กคอยในแต่ละครงั้ ทเ่ี ปลย่ี นชุด


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook