หลักการเขียนโปรแกรมใน Scratch ตอนที่ 2

ตัวอย่างการเล่าเรื่องใน MadLibs ก็มีหลักการเขียนโปรแกรมที่สำคัญดังนี้ การโต้ตอบแบบทันที (real-time interaction) เป็นการโต้ตอบระหว่างผู้ใช้กับโปรแกรมผ่านการรับรู้ได้หลายทางเช่น เมาส์ คีย์บอร์ด เสียง เป็นต้น ในโปรเจกนี้ผู้ดำเนินเรื่องมีการถาม และให้ผู้ใช้งานตอบผ่านคีย์บอร์ด ตัวแปร (variables) มีหน้าที่เก็บค่าที่ต้องการนำมาใช้ใหม่ผ่านการเรียกชื่อของตัวแปร เช่นโปรเจกนี้สร้างตัวแปรมาเก็บค่าของคำตอบที่ได้จากผู้ใช้งาน และนำกลับมาใช้ใหม่ขณะเล่าเรื่อง ตัวแปรยังระบุตอนสร้างได้ว่าเป็นตัวแปรส่วนตัว (private variables) ใช้ได้กับตัวละครที่สร้างมันขึ้นมาเท่านั้น หรือ ตัวแปรส่วนรวม (global variables) สามารถใช้ได้กับทุกตัวละคร เป็นการแชร์ข้อมูลระหว่างกัน ตัวแปรที่ใช้เก็บคำตอบนั้นเป็นตัวแปรส่วนรวมซึ่งวาฬสองตัวเอาไปใช้ได้ขณะเล่าเรื่อง การส่งต่อการทำงาน (synchronization) ระหว่างตัวละคร ใช้วิธีการส่งรหัสสัญญาณออกไป (broadcast) โดยอาศัยชื่อของรหัส (event) ที่แตกต่างเป็นตัวส่งไม้ให้ระหว่างกัน ตัวละครหรือฉากเวทีที่รอฟังรหัสที่มันสนใจ (event listening)  ก็จะรู้ว่ามันควรจะเริ่มทำงานต่อหรือยัง เช่นโปรเจกนี้ ผู้ดำเนินเรื่องได้ถามตอบกับผู้ใช้เสร็จแล้ว ก็ส่งสัญญาณให้เริ่มเล่าเรื่องได้ ("start story") วาฬสองตัวพร้อมทั้งฉากเวทีสนใจในรหัสนี้ก็ต่างเริ่มต้นทำงานของตนเอง จากนั้นเป็นการเล่าเรื่องระหว่างวาฬสองตัว วาฬทั้งสองตัวจึงผลัดกันรับส่งรหัสเพื่อให้การเล่าเรื่องต่อเนื่องกันอย่างราบรื่นนั้นเอง

Advertisements

โปรเจก SimpleCircuit

SimpleCircuit เป็นการจำลอง (simulation) แผงวงจรไฟฟ้าแบบง่ายๆ มาเริ่มด้วยการเปิดโปรเจค SimpleCircuit โดยเลือก Open ในเมนู File จากนั้นคลิกปุ่ม Examples เลือกโฟรเดอร์ Simulations เลือกโปรเจก SimpleCircuit SimpleCircuit  มีอุปกรณ์เพียง 3 ตัว คือ สวิตช์ แบตเตอรี่ หลอดไฟ บนแผงวงจรไฟฟ้าแบบอนุกรม พร้อมกับคำสั่งบอกวิธีใช้งาน นั่นก็คือคลิกธงเขียวเริ่มต้นการจำลอง ลากอุปกรณ์แต่ละตัวเชื่อมแผงวงจร เปิดหลอดไฟโดยใช้เมาส์วางบนสวิตช์ กด "space bar" บนคีย์บอร์ดเพื่อดูแบบสัญลักษณ์ของแผงวงจร เมื่อคลิกธงเขียวอุปกรณ์ทั้งหมดจะมาอยู่ตรงกลางและเมื่อกด "space bar" จะเห็นสัญลักษณ์สีดำของลายวงจรและอุปกรณ์เหมือนรูปด้านล้างนี้ การวางอุปกรณ์ไม่ขึ้นกับตำแหน่งเพราะเป็นวงจรอนุกรมง่ายๆ ขอเพียงให้อุปกรณ์แตะขั้วแผงวงจรเป็นใช้ได้ แต่เพื่อความสวยงามการวางให้ขั้วของอุปกรณ์กับแผงวงจรตรงกันก็จะดีมาก รูปถัดไปแสดงการวางที่ถูกต้องสวยงาม เมื่อเอาเมาส์ชี้ที่สวิตช์ หลอดไฟจะสว่างทันที แต่ถ้าวางอุปกรณ์แค่ให้ส่วนหนึ่งส่วนใดแตะขั้วแผงวงจรแล้ว การจำลองยังคงถูกต้องอยู่ แต่ขัดความรู้สึกไปหน่อย ทั้งนี้เกิดจากการเขียนโปรแกรมซึ่งจะมาดูกันในภายหลัง รูปด้านล่างแสดงให้เห็นว่าแม้ขั้วจะถูกวางไม่ตรงตำแหน่ง หลอดไฟก็ยังทำงานได้ !!