วันอังคารที่ 29 มกราคม พ.ศ. 2556

Kodu Grammar 3


จุดเริ่มต้นของกฎสำหรับสร้างภาษา (Production Rules) ที่ใช้ในการเขียนโปรแกรมคือ
1. Rule –> Condition Action
Rule คือกฎของเกมที่ต้องการจะสร้าง Condition เป็นเงื่อนไขของเหตุการณ์ Action สิ่งที่จะทำเมื่อเงื่อนไขนั้นเป็นจริง กฎนี้ยังใช้งานไม่ได้ เนื่องจากด้านขวามือมีแต่ตัวแปร (Variable) ซึ่งไม่สามารถแทนที่ได้ด้วยไอคอนใน Kodu ดังนั้นมาดูกฎข้ออื่นกันต่อว่า ตัวแปรเหล่านี้เปลี่ยนไปเป็นอะไรได้บ้าง
2. Condition –> Sensor Filter
3. Action –> Actuator Selector Modifier
Sensor (การรับรู้) Filter (ตัวกรอง) Actuator (ตัวกระทำ) Selector (ตัวเลือก) Modifier (ตัวขยาย) ทั้งหมดนี้ก็ยังเป็นตัวแปรอยู่ แทนที่ด้วยไอคอนไม่ได้ แต่สามารถแทนที่กันเองได้
กฎการแทนที่ เป็นกฎที่ทำให้ไวยากรณ์ขยายออกไปได้ด้วยการแทนคำจากกฎข้อหนึ่งไปแทนคำในกฎอีกข้อหนึ่ง คือแทนคำที่เป็นตัวแปรทางซ้ายมือ ด้วยคำทางขวามือ (อาจเป็น Variable หรือ Terminal ก็ได้)
ยกตัวอย่างในกรณีนี้ เราสามารถนำ Sensor Filter ไปแทนตัวแปร Condition ในกฎข้อแรกได้ ดังนี้ Rule –> Sensor Filter Action
และเมื่อแทน Action ด้วย ก็จะได้กฎใหม่ดังนี้ Rule –> Sensor Filter Actuator Selector Modifier มาดูกฎข้ออื่นๆ กันต่อ
4. Sensor –> see | hear | bump
5. Filter –> apple | blue | health
6. Actuator –> move | shoot| add
7. Selector –> toward | me | avoid
8. Modifier –> 5 points | red | quickly
คราวนี้เราจะเห็นคำที่เป็น Terminals กันบ้างแล้ว แท่ง (Vertical bar) ที่กั้นระหว่างคำด้านขวามือ หมายความว่า ให้เลือกใช้คำใดคำหนึ่ง ตัวอย่างเช่น เลือก hear แทน Sensor, apple แทน Filter, add แทน Actuator เป็นต้น
คราวนี้มาลองดูตัวอย่างกฎในเกม ที่ได้จากกฎสร้างภาษาด้านบน เพื่อนำไปเขียนโปรแกรมใน Kodu เช่น ต้องการเขียนกฎให้ตัว Kodu เมื่อเห็นผลแอปเปิ้ลแล้ว ให้เคลื่อนที่ไปหาผลแอปเปิ้ลนั้นอย่างรวดเร็ว เมื่อใช้กฎสร้างภาษาที่กล่าวมา ร่วมกับกฎการแทนที่แล้ว จะได้กฎคำสั่งสุดท้ายตามขั้นตอนดังนี้
  • Rule –> Condition Action
  • Rule –> Sensor Filter Action
  • Rule –> see Filter Action
  • Rule –> see apple Action
  • Rule –> see apple Actuator Selector Modifier
  • Rule –> see apple move Selector Modifier
  • Rule –> see apple move toward Modifier
  • Rule –> see apple move toward quickly
กฎสุดท้ายจะมีแต่ Terminal ในด้านขวามือ ซึ่งสามารถเขียนในโปรแกรม Kodu ได้ดังนี้
When see apple Do move toward quickly
สังเกตว่า When และ Do ไม่ได้อยู่ในไวยากรณ์ของ Kodu แต่เป็นส่วนหนึ่งในกฎของเกมที่ใช้แยกระหว่างเหตุการณ์ กับสิ่งที่จะทำเมื่อเหตุการณ์นั้นเกิดขึ้น รูปล่างนี้แสดงการเขียนกฎสุดท้ายที่ได้จากตัวอย่างด้านบนให้ตัว Kodu 
Kodu grammar

ไม่มีความคิดเห็น:

แสดงความคิดเห็น