Grid2010
รุ่นแก้ไขเมื่อ 04:12, 12 กุมภาพันธ์ 2554 โดย Jittat (คุย | มีส่วนร่วม) (→แฟ้มสำหรับ viewer: แฟ้ม trace)
หน้านี้สำหรับให้ข้อมูลเกี่ยวกับการพัฒนาโปรแกรมในการแข่งขัน Grid Innovation 2010
เนื้อหา
ประกาศ
- (12/2 10:58) มีการอัพโหลดโปรแกรม shoot เวอร์ชันใหม่ คัดลอกได้ที่ ~jittat_fa/shoot
- (12/2 10:42) มีการแก้ไขโจทย์ดังนี้
- หน้าสอง Y2 < Y1
- ปรับขนาดข้อมูลเข้า N < 1,000
- มีการแก้ตัวอย่างข้อมูลป้อนเข้า ดูตัวอย่างด้านล่าง
การคำนวณ
รูปแบบของแฟ้มข้อมูล
แฟ้ม input
ตัวอย่าง
-30 30 30 -30 10 5 5 4 0 0 -10 9 0 15 -10 5 0 24 0 5 0 5 0 1 1 7 0 1 2 9 1 1 1 11 1 1 2 13 1 1 2 15 1 1 1 1
แฟ้ม output
แฟ้มสำหรับ viewer: แฟ้ม trace
มีรูปแบบดังนี้
- บรรทัดแรกระบุจำนวนนก
- สำหรับนกแต่ละตัว
- บรรทัดแรกระบุจำนวนจุดที่ต้องการวาด
- จากนั้นตามด้วยลำดับของจุดที่ต้องการวาด ระบุในรูปแบบ พิกัดแกน x,พิกัดแกน y
- จากนั้นตามด้วยข้อมูลของกระจกที่เติมเข้าไป
- เริ่มด้วยบรรทัดเปล่า หรืออะไรก็ได้ (ในตัวอย่างเขียนว่า [mirrors])
- บรรทัดถัดจากนั้นระบุจำนวนกระจก
- สำหรับกระจกแต่ละอัน ระบุพิกัดของจุดปลาย เป็น x1 y1 x2 y2
ข้อมูลหลังจากนั้นตัว viewer ไม่สนใจ เช่น คะแนนที่ได้ ที่ shoot จะแสดงขึ้นมาด้วย
ตัวอย่าง
2 4 -30,0 1.45583,3.14558 -2.34683,-1.31136 -115.604,38.3486 3 30,0 28.999,-0.1001 147.83,-16.811 [mirrors] 0 [score] Score = 3
โปรแกรมจำลองสถานการณ์
สามารถคัดลอกได้จาก ~jittat_fa/shoot บนเครื่อง tera คัดลอกมาที่ไดเรกทอรีตัวเองด้วยคำสั่งต่อไปนี้
cp ~jittat_fa/shoot .
เรียกใช้ดังนี้
./shoot [ชื่อ input-file] [ชื่อ output-file]
การใช้งาน viewer
จะต้องป้อนแฟ้ม config และผลลัพธ์จากการ
python viewer.py [input-file] [trace-file]
โดยที่ input-file ระบุขนาดและตำแหน่งของของบนกระดาน ส่วน trace-file ระบุเส้นทางการวิ่งของนก และตำแหน่งของกระจก
ลิงก์เพื่อดาวน์โหลด
- ตัวอย่าง
- แฟ้ม cX.in จะเป็นข้อมูลป้อนเข้า ส่วน rX.out เป็นทิศทางและตำแหน่งของกระจกที่โปรแกรมต้องแสดงออกมา
- แฟ้ม vX.out เป็นแฟ้มที่โปรแกรมจำลองสถานการณ์คำนวณได้ เพื่อนำไปใส่ในโปรแกรมแสดงผลต่อไป
- โปรแกรมแสดงผล โปรแกรมแสดงผลใช้ Python และ wxPython ซึ่งผู้เข้าแข่งต้องติดตั้งก่อน
- Python ที่ใช้ ให้ใช้เวอร์ชัน 2.x Download
- ตัวอย่าง