> For the complete documentation index, see [llms.txt](https://docs.tlic.cmu.ac.th/cmumoodle-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tlic.cmu.ac.th/cmumoodle-manual/quiz/creating-quiz/question-type/coderunner.md).

# CodeRunner

จะเป็นข้อสอบประเภทรหัสคอมพิวเตอร์ในการเขียนโปรแกรม สามารถ Run รหัสที่น.ศ.เขียนส่งมาใน sandbox ได้หลากหลายภาษา เหมาะสำหรับการสร้างข้อสอบเขียนโปรแกรมเป็นหลัก โดยน.ศ.สามารถ copy โค้ดของตนเองมาวางในช่องคำตอบแต่ละข้อ แล้วดูผลลัพธ์การ Run โค้ดนั้นได้ทันที และยังสามารถตั้งค่าข้อสอบให้น.ศ.แก้โค้ดและส่งใหม่ และหักคะแนนได้ตามความเหมาะสมอีกด้วย

![ตัวอย่างหน้าต่างการสร้างคำถามประเภท CodeRunner](/files/yejCr0v35B4TpAwU9V7r)

![ตัวอย่างหน้าต่างคำตอบ](/files/HkAyLasDTGPh50itfd8e)

### Answer box preload

![](/files/H9SbnQipUHf7PCQKjrPO)

ส่วนที่ใส่ไว้ในช่อง Answer box preload นี้จะถูกนำไปใส่ไว้ในช่อง Answer ของน.ศ.ล่วงหน้า ก่อนที่น.ศ.จะเข้ามาทำข้อสอบ

### Global extra

![](/files/C0nV8G5RSCuRA3TGvgvn)

ช่องสำหรับใส่ข้อความใดก็ได้ที่อาจารย์ต้องการเพิ่มเติมข้อมูลให้กับน.ศ. โดยจะมีลักษณะเป็น template และเป็นช่องข้อความเพิ่มเติมของแต่ละ Text case และสามารถเข้ากับการทดสอบโค้ดได้ทุกประเภท สามารถเปิดใช้ได้เมื่อผู้เขียน template ดังกล่าวใส่คำสั่งว่า {{ QUESTION.globalextra }}

### Text case

![ตัวอย่างหน้าต่าง Text case](/files/3uR2KwD8s6qoKIOzb2B0)

* Text case 1 คือโค้ดสำหรับการทดสอบ สามารถแสดงผลเป็นรูปแบบ template ได้ด้วยคำสั่ง {{TEST.testcode}}
* Standard Input สามารถแสดงผลเป็นรูปแบบ template ได้ด้วยคำสั่ง {{TEST.stdin}}
* Expected output สามารถแสดงผลเป็นรูปแบบ template ได้ด้วยคำสั่ง {{TEST.expected}
* Extra template data ช่องเพิ่มเติมในรูปแบบ template สามารถเข้าถึงได้ด้วยคำสั่ง {{TEST.extra}}
* Test properties&#x20;
  * Use as example เมื่อเปิดใช้ Test case ดังกล่าวจะแสดงผลในช่องผลลัพธ์เป็น "For example:" ของคำถามข้อนี้
  * Display ประกอบด้วย Show , Hide , Hide if fail และ Hide if success เป็นการตั้งค่าที่ต้องการให้ Text case ดังกล่าวนี้แสดงขึ้นในช่องผลลัพธ์ของน.ศ.ในเงื่อนไขใดจาก 4 เงื่อนไขที่มีให้เลือกนี้
  * Hide rest if fail เมื่อเปิดใช้ และการทดสอบโค้ดล้มเหลว subsequent test ที่เหลือทั้งหมดของน.ศ.จะถูกซ่อนทันทีโดยไม่มีเงื่อนไข แม้ว่าการตั้งค่าในช่อง Display จะเป็นอะไรก็ตาม
  * Mark คะแนนของ Test case นี้
  * Ordering ใช้สำหรับการเปลี่ยน order ของ testcase เมื่อคำถามข้อนี้ถูกบันทึก

### Support files

![](/files/KaBu4Tn3qSWw8rWZdnws)

ไฟล์ใดๆที่ถูกอัปโหลดไว้จะถูกเพิ่มเข้าไปใน Working Directory เมื่อ template เพิ่มเติมถูกหยุดการทำงาน โดยรองรับไฟล์ขนาดใหญ่หรือไฟล์ที่ช่วยให้การทำงานรวดเร็วขึ้นได้อย่างเต็มประสิทธิภาพ

### Attachment options

![](/files/ByAT3ajkgeE7KnBW6R40)

* Allow attachments อนุญาตให้น.ศ.แนบไฟล์เพิ่มเติมมา และกำหนดจำนวนครั้งตั้งแต่ 1-ไม่จำกัด
* Require attachment จะสามารถตั้งค่าตรงนี้ได้ก็ต่อเมื่อส่วน Allow attachment ไม่ใช่ No เป็นการกำหนดจำนวนขั้นตอนของไฟล์แนบที่ต้องแนบเป็นคำตอบเพื่อใช้ประกอบการคิดคะแนนข้อสอบข้อนี้
* Allowed file names ชื่อของไฟล์จะต้องอยู่ในรูปแบบของ alphanumeric และ underscore (*) ,* Hyphen และ Period โดยจะต้องไม่ขึ้นต้นด้วย underscore 2 อัน และจะต้องไม่ซ้ำหรือซ้อนทับกับชื่อไฟล์ support อื่นๆ Description สามารถปล่อยว่างได้ และระบบจะแสดงส่วนของ Regular expression เอง หรือไม่กรอกทั้งสองช่องเพื่อไม่ทำการตรวจสอบ Regular expression ก็ได้
  * Regular expression ถ้ากำหนดส่วนนี้ไฟล์ที่น.ศ.อัปโหลดจะต้องตรงกับ PHP(Perl) ที่ตั้งไว้ เช่น '.+\cpp' สำหรับไฟล์ C++ หรือ '(?!Prog.java)' สำหรับไฟล์ Java ทุกประเภทยกเว้น 'Prog.java'&#x20;
  * Description คือช่องข้อความที่แสดงให้น.ศ.ทราบเพื่ออธิบายว่าระบบต้องการไฟล์แบบใดบ้าง&#x20;
* Mex allowed file size (bytes) กำหนดขนาดสูงสุด(ไบต์)ของไฟล์ที่อัปโหลดได้
