สวิตช์กับหลอดไฟ

ในการจำลอง SimpleCircuit อุปกรณ์ทุกตัวต้องเชื่อมต่อในแผงวงจรจนครบวงจร หลอดไฟจึงจะติดเมื่อเปิดสวิตช์ สคริปต์ของทุกอุปกรณ์จะต้องถูกตรวจสอบว่าเชื่อมต่อกับแผงวงจรหรือยัง เหมือนแบตเตอรี่

ทุกอุปกรณ์จะแสดงสัญลักษณ์เมื่อกด “space bar” คล้ายแบตเตอรี่ แต่นอกจากสัญลักษณ์แล้วหลอดไฟกับสวิตช์จะมีชุดอยู่สองชุดคือหลอดดับกับหลอดติด และสวิตช์เปิดกับสวิตช์ปิด ดังนั้นจะเห็นว่าการตรวจสอบครั้งเดียวโดยบล็อกถ้ามิฉะนั้น (if-else) ไม่เพียงพอ เราต้องการตรวจสอบอีกครั้งเพื่อเลือกชุดให้ทั้งหลอดไฟและสวิตช์ ด้วยการใช้บล็อกถ้ามิฉะนั้น (if-else) อีกครั้ง การซ้อนกันของบล็อกถ้ามิฉะนั้นเป็นการตรวจสอบซ้อนใน (nested if)

หลอดไฟจะติดได้เมื่อทุกอุปกรณ์เชื่อมต่อครบวงจร และเมื่อสวิตช์ถูกเปิด สคริปต์ของหลอดไฟเช็คตรรกะของการเชื่อมต่อในบล็อกถ้ามิฉะนั้น (if-else) โดยดูว่าตัวแปรเชื่อมต่อของทุกอุปกรณ์ (battconnected, Switchconnected, bulbconnected) เท่ากับ 1 หรือไม่ ถ้าใช่หมายถึงเชื่อมต่อแล้ว ส่วนสวิตช์จะเปิดได้มันต้องถูกเชื่อมต่อก่อน ดังนั้นเช็คแค่สวิตช์เปิด (Switch=1) หรือยังเท่านั้นก็ได้

การตรวจสอบเงื่อนไขหลายเงื่อนไขพร้อมกัน (battconnected, Switch, bulbconnected) ทำได้โดยใช้ตรรกะและ (and logic) ช่วยในการตรวจสอบ โดยที่ทุกเงื่อนไขต้องเป็นจริงทั้งหมดจึงจะให้ตรรกะสุดท้ายเป็นจริง ถ้าเป็นจริงซึ่งหมายถึงหลอดไฟติดให้เปลี่ยนชุดเป็น “bulbon” มิฉะนั้นให้เปลื่ยนชุดเป็น “bulboff”

สำหรับสวิตช์จะทำงาน เมื่อเอาเมาส์มาวางเหนือมัน แต่มันจะต้องถูกเชื่อมต่อก่อนเท่านั้น ดังนั้นสคริปต์ของสวิตช์จะถูกตรวจสอบในบล็อกถ้ามิฉะนั้นเพิ่มอีกชั้นหนึ่ง นั้นก็คือตรวจดูก่อนว่าสวิตช์เชื่อมต่อแล้วหรือยัง (Switchconnected = 1) ถ้าต่อแล้ว จึงตรวจสอบอีกครั้งว่าเมาส์ชี้ที่สวิตช์หรือไม่ ถ้าชี้ (switch = 1 หมายถึงสวิตช์เปิด) ก็ให้เปลี่ยนชุดเป็น “Switchon” มิฉะนั้นเปลื่ยนชุดเป็น “Switchoff”

Advertisements

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 )

Google+ photo

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

Twitter picture

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

Facebook photo

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

w

Connecting to %s