ผลต่างระหว่างรุ่นของ "Grid2010"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 34: แถว 34:
  
 
=== แฟ้มสำหรับ viewer: แฟ้ม trace ===
 
=== แฟ้มสำหรับ viewer: แฟ้ม trace ===
 +
มีรูปแบบดังนี้
 +
 +
* บรรทัดแรกระบุจำนวนนก
 +
* สำหรับนกแต่ละตัว
 +
** บรรทัดแรกระบุจำนวนจุดที่ต้องการวาด
 +
** จากนั้นตามด้วยลำดับของจุดที่ต้องการวาด ระบุในรูปแบบ <tt>พิกัดแกน x,พิกัดแกน y</tt>
 +
 +
* จากนั้นตามด้วยข้อมูลของกระจกที่เติมเข้าไป
 +
* เริ่มด้วยบรรทัดเปล่า หรืออะไรก็ได้ (ในตัวอย่างเขียนว่า <tt>[mirrors]</tt>)
 +
* บรรทัดถัดจากนั้นระบุจำนวนกระจก
 +
* สำหรับกระจกแต่ละอัน ระบุพิกัดของจุดปลาย เป็น <tt>x1 y1 x2 y2</tt>
 +
 +
ข้อมูลหลังจากนั้นตัว 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
  
 
== โปรแกรมจำลองสถานการณ์ ==
 
== โปรแกรมจำลองสถานการณ์ ==

รุ่นแก้ไขเมื่อ 04:12, 12 กุมภาพันธ์ 2554

หน้านี้สำหรับให้ข้อมูลเกี่ยวกับการพัฒนาโปรแกรมในการแข่งขัน 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