รายละเอียดส่วนที่ 3 SyntaxTree https://www.cs.duke.edu/courses/spring12/cps140/assign/proj3.pdf
Part 3 SyntaxTree
Part 3-1 สร้าง SyntaxTree
1. สร้างคลาส Node ซึ่งก็คือ Node ของโครงสร้างข้อมูลแบบของต้นไม้ โดยเก็บข้อมูลคำสั่งการทำงาน และ Node ลูก 2 Node คือ Nodeซ้าย และ Node ขวา

2. สร้างคลาส Player ซึ่งก็คือ ผู้เล่นที่เป็นประเภทหนูหรือแมว

3.สร้างคลาส Cat และคลาส Mouse ให้สืบทอดมาจากคลาส Player


4.สร้างคลาสชื่อว่า commandTree ซึ่งคลาสนี้จะเป็นคลาสหลักในการสร้าง Syntax Tree และแสดงผล Animation โดยมี attribute และ constructor ดังรูป


5. สร้างเมธอดชื่อว่า genCommandTree โดยเมธอดนี้จะเป็นการสร้าง SyntaxTree ของตัวภาาษาโปรแกรม MoustCat

ทดสอบว่าเราสร้าง SyntaxTree ถูกหรือไม่ โดยเราต้องใช้วิธีท่องไปในต้นไม้ SyxtaxTree โดยใช้วิธี Depth First Search ตามที่กล่าวมาข้างต้น โดยให้ Node ด้านขวาต้องถูกอ่านให้หมดก่อน Node ด้านซ้าย

ทดสอบ Input output SyntaxTree

เมื่อใช้ Depth First Search ใน SyntaxTree เพื่อพิมพ์ข้อมูลภายใน Node ออกมาในแต่ละบรรทัดจะได้เป็น

วาดรูปจำลองโครงสร้างข้อมูลแบบต้นไม้

Part 3-2 สร้าง Animataion จาก SyntaxTree
วิธีสร้าง Animation จาก SyntaxTree นั้น ให้เปลี่ยนจากการ System.out เพื่อแสดงผล output เป็นการประมวลผลคำสั่งนั้นๆ แทน โดยในตัวอย่างนี้จะใช้เมธอดชื่อว่า showAnimation และมีอีกเมธอดนึงคือเมธอด travelRepeat ไว้สำหรับการทำงานแบบทำซ้ำ (loop)

***กรณีถ้าเป็นคำสั่ง repeat (เช็คจากคำในช่องแรก ซึ่งก็คือ index ที่ 0 ) ให้ส่ง Node เริ่มต้นที่ต้องทำซ้ำ และจำนวนรอบที่ทำซ้ำไปที่เมธอด trabelRepeat (จำนวนรอบได้จากการแยกคำสั่งด้วยช่องว่าง โดยตัวเลขจำนวนรอบจะอยู่ index ที่ 1)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น