ผมได้เขียนโปรแกรมเพื่อแก้ปัญหาเกม runaway จากเวบหนึ่ง
**Hidden Content: To see this hidden content your post count must be 1 or greater.**
ขึ้นมาครับ
แต่ปัญหาติดอยู่ที่ผมเขียนด้วย PHP ซึ่งทำให้มีข้อจำกัดบางอย่าง เช่น exec time เป็นต้น
ผมจึงอยากให้โปรแกรมทำงานได้เร็วขึ้นกว่านี้(บางทีรันไว้ 20 นาทียังหาคำตอบไม่ได้)
หลักการแก้ไขปัญหานี้ง่ายๆครับ
1 มีสนามเป็นตาราง 4 เหลี่ยมอยู่ มีช่องว่างที่เดินได้และกับระเบิดวางไว้
2 มีสนามระเบิดอยู่( FVterrainString) ค่า X เป็นระเบิดค่า . เป็นช่องว่าง
3 และค่าความกว้างยาวของสนาม( FVboardX & FVboardY)
4 มีคำสั่งที่ต้องใส่ในหุ่นเป็นค่าสูงสุดกับต่ำสุด ( FVinsMax & FVinsMin)
5 หุ่นเดินได้แต่ ขวา และ ลง เท่านั้น(ใน code แทนขวาด้วย 0 แทนลงด้วย 1)
6 เมื่อ code เดินหมดแล้วจะไปเริ่ม ต้น code ใหม่ และเดินไปเรื่อยๆจบกว่าจะออกนอกสนาม หรือว่าเจอระเบิด
การทำงานคือ จะเรียก findinitins เพื่อคำนวนหาการเดินด้วยระยะทาง FVinsMin ที่เดินแล้วไม่ติดระเบิดก่อน
จากนั้นจึงจะทำการ brute force หาทางเดินที่พอเดินแล้วไม่เหยียบระเบิดเลยต่อไป
มีสามไฟล์ในนี้ครับ
1 index.php เป็นไฟล์โปรแกรม
2 test_case1.txt เป็นข้อความสั้นๆที่เอาไว้ input ใน textarea
2 test_case2.txt เป็นข้อความแบบยาวที่เอาไว้ input ใน textarea
http://file.citec.us/download.php?id=B56C39F9
php.ini เซตไว้อย่างนี้แล้วด้วยครับ
max_execution_time = 1800
max_input_time = 60
memory_limit = 64M
code แบบยาว ได้ผลออกมาแบบนี้ครับ
Level next level Calculated 801.979773045 seconds
พอจะมีวิธีหรือว่าเพิ่มเติม-แก้ไขตรงไหนให้ code run โดยใช้เวลาน้อยลงบ้างหรือไม่ครับ รบกวนขอไอเดียด้วยครับ