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

Scratch ไม่ได้ใช้การเขียนโปรแกรมเชิงวัตถุ (Object oriented) อย่างจริงจัง แต่โปรเจก GravityBlocks สะท้อนการใช้หลักการเขียนโปรแกรมเชิงวัตถุอยู่บ้าง มาลองดูกัน การเขียนโปรแกรมเชิงวัตถุ (Object oriented) เป็นการมองแบบรวมศูนย์อยู่ที่ตัววัตถุ (object) คือสนใจว่าวัตถุที่จะสร้างนั้นมีองค์ประกอบหรือคุณสมบัติอะไรบ้าง และทำงานอะไรได้บ้าง โดยทั่วไปการเขียนโปรแกรมเชิงวัตถุนั้นเป็นการสร้างวัตถุหลากหลายชนิดหลายวัตถุให้ทำงานรวมกัน โต้ตอบกัน ส่งข้อมูลระหว่างกัน ตามลำดับขั้นตอนที่ออกแบบไว้จนได้ผลลัพท์ที่ต้องการ ขั้นแรกของการเขียนโปรแกรมเชิงวัตถุคือการสร้างต้นแบบหรือแผ่นพิมพ์เขียวของวัตถุ (class) ซึ่งประกอบด้วยคุณสมบัติหรือข้อมูล (properties, attributes, data แล้วแต่จะเรียก) ของวัตถุ และสิ่งที่มันสามารถทำได้ (function, method) การเขียนโปรแกรมเชิงวัตถุใน Scratch ตัวละครหนึ่งตัวก็คือหนึ่งวัตถุ ดังนั้นข้อมูลพื้นฐานของวัตถุก็ได้จากตัวละคร เช่นชื่อตัวละคร เครื่องแต่งกาย เสียง ตำแหน่งบนเวที ทิศทางการเคลื่อนที่ ความสามารถในการหมุน การกลับทิศ นอกจากนั้นถ้าเราสร้างตัวแปรส่วนตัวก็เข้าข่ายเป็นข้อมูลของวัตถุ การเขียนสคริปต์ก็คือการเขียน method ให้กับวัตถุนั้นเอง การสร้างบล็อกสีตัวแรกในโปรเจก GravityBlocks เป็นการสร้างต้นแบบ (class) ขึ้นมา นั้นก็คือ สร้างบล็อกที่มีสองสี สีบานเย็นเป็นแถบบางๆอยู่ด้านบน สีฟ้าอ่อนในส่วนที่เหลือของบล็อก ตำแหน่งของบล็อกบนเวที ส่วนการทำงานของบล็อก คือการเคลื่อนที่ลง การหยุดการเคลื่อนที่ เมื่อมีแผ่นพิมพ์เขียวแล้ว ก็สามารถสร้างวัตถุออกมาได้ …

เริ่มต้นสร้างแผงวงจร

ใน SimpleCircuit ก็มีใบคำสั่งไว้เพื่อให้ข้อมูลก่อนการแสดงการจำลอง มันจะหายไปเมื่อการจำลองเริ่มขึ้น สคริปต์ของใบคำสั่งนี้เพียงแค่ทำให้มันหายไปหลังจากคลิกธงเขียว เหมือนในโปรเจก GravityBlocks แผงวงจรเป็นแบบอนุกรมง่ายๆ มีขั้วต่ออุปกรณ์ 3 แห่ง ตัวขั้วมีสีเหลืองกับสีฟ้าเพื่อใช้ในการเชื่อมต่อกับอุปกรณ์ แผงวงจรมี 2 รูปแบบ แบบปกติที่มีสีสันสวยงาม กับแบบที่เป็นสัญลักษณ์ทางไฟฟ้า สคริปต์ของแผงวงจรทำแค่สลับรูปแบบเมื่อผู้ใช้กด "space bar" โดยใช้บล็อกควบคุมถ้ามิฉะนั้น (if-else) ในการกำหนดการแสดงรูปแบบ นั้นก็คือถ้าผู้ใช้กด "space bar" ให้แสดงรูปแบบสัญลักษณ์ (Symbols) มิฉะนั้นแสดงรูปแบบสีสันปกติ (Blank Circuit) เมื่อคลิกธงเขียว อุปกรณ์ทุกตัวต้องกำหนดขนาดเริ่มต้นเท่าของจริงก่อนด้วยบล็อกตั้งค่าขนาด (set size to) ทั้งนี้เพราะขนาดมีผลต่อการเชื่อมเข้าแผงวงจร อุปกรณ์ทุกตัวจะมาอยู่ตรงกลางแผงวงจรเพื่อให้ผู้ใช้นำมันไปวางในแผงวงจรเอง วิธีการหาตำแหน่งบนเวทีเพื่อใช้ในสคริปต์ทำได้โดยลากอุปกรณ์เช่นแบตเตอรี่ไปยังตำแหน่งที่ต้องการ จากนั้นสังเกตุตำแหน่ง x กับ y ในบริเวณข้อมูลของแบตเตอรี่ เอาค่า x กับ y ที่ปรากฏไปใช้ในบล็อกไปยัง (go to) สังเกตุตัวเลขที่ตรงกัน สำหรับสคริปต์ของแบตเตอรี่ เหมือนกันกับฉากเวที ที่ทุกครั้งที่เรากด  "space bar" ให้แสดงรูปแบบสัญลักษณ์ของแบตเตอรี่ …