Categories
Kodu Programming

Kodu Grammar 2

เกมใน Kodu ถูกขับเคลื่อนด้วยเหตุการณ์ต่างๆ ระหว่างโปรแกรมทำงาน หรือระหว่างการเล่นเกม ดังนั้นการเขียนโปรแกรมจึงขึ้นกับเหตุการณ์เหล่านั้น และสามารถแสดงเป็นกฎได้ดังนี้

When Condition (เงื่อนไขของเหตุการณ์) Do Action (สิ่งที่จะทำเมื่อเกิดเหตุการณ์ขึ้น)

กฎด้านบนนี้เป็นเพียงแค่กฎเบื้องต้น เพราะเบื้องหลังของแต่ละรายการคำสั่งในโปรแกรม Kodu ถูกกำกับด้วยไวยากรณ์ภาษา (Kodu Grammar) ที่ต้องใช้ให้ถูกต้อง เพื่อให้เกมทำงานได้ถูกต้องตามที่ได้ออกแบบไว้

การเข้าใจไวยากรณ์ของเกมจะทำให้เขียนโปรแกรมใน Kodu ได้ดีขึ้น เหมือนเข้าใจในไวยากรณ์ภาษาอังกฤษ ก็จะอ่านเขียนภาษาอังกฤษได้ดีขึ้น แต่ก็ไม่ได้หมายความว่า ต้องเข้าใจไวยากรณ์ใน Kodu ทั้งหมดก่อนถึงจะเริ่มเขียนโปรแกรมบน Kodu ได้ ดังนั้นมาเริ่มต้นศึกษาแบบง่ายๆ ก่อน

ส่วนประกอบสำคัญของไวยากรณ์ คือ Production Rules เป็นกฎสำหรับสร้างภาษา ประกอบไปด้วย Variables และ Terminals ซึ่งอยู่ในรูปแบบดังนี้

Variable –> Variables Terminals

Variable คือคำที่แปรเปลี่ยนได้ตามกฎ(อื่น) คำเหล่านี้จะขึ้นต้นด้วยอักษรตัวใหญ่ เช่น Rule, Condition, Action, Sensor, Filter, FilterSet, Actuator, Selector, Modifier เป็นต้น

Terminal คือคำที่สิ้นสุด ไม่สามารถเปลี่ยนแปลงต่อไปได้อีกแล้ว คำเหล่านี้จะขึ้นต้นด้วยอักษรตัวเล็ก เช่น kodu, cycle, apple, see, move, red, eat, toward, quickly, hear เป็นต้น คำเหล่านี้จะเป็นไอคอนต่างๆ ที่ใช้ในการเขียนโปรแกรมใน Kodu ซึ่งไอคอนต่างๆ พอจะแบ่งเป็นกลุ่มๆ (ตัวอย่าง) ได้ดังนี้

  • ไอคอนตัวละครหรือวัตถุ

Kodu Icons - Objects

  • ไอคอนแสดงการรับรู้

Kodu Icons - Sensors

  • ไอคอนที่เป็นการกระทำ

Koud Icons - Actions

Production Rules เป็นกฎที่ใช้อธิบายตัวภาษาเพื่อสร้างกฎของเกม ในขณะที่กฎของเกมที่ใช้ตอนเขียนโปรแกรม (When … D0 …) คือผลลัพธ์สุดท้ายจากการใช้ Production Rules

ด้านซ้ายมือของ Production Rules จะมีได้แต่ตัวแปร และมีแค่ตัวเดียว แต่ด้านขวามือ ตัวแปรและ Terminal อาจมีตัวเดียว หลายตัว หรือไม่มีเลยก็ได้

คราวหน้ามาดูว่า จากกฎสำหรับสร้างภาษา จะไปสู่ประโยคหรือกฎคำสั่งที่ใช้ในการเขียนเกมใน Kodu ได้อย่างไร

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 )

Twitter picture

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

Facebook photo

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

Connecting to %s