ความท้าทายคือการใช้โปรแกรมติดตามเรย์แบบ 2 มิติซึ่งเป็นข้อความ
แหล่งกำเนิดแสงสีขาวเป็น@
สัญลักษณ์ R
, G
และB
ตัวกรองแสง /
และ\
เป็นกระจกที่มีการสะท้อนแสง 80% ?
เป็นเซ็นเซอร์วัดแสง >
, <
, ^
และV
รวมแสงในทิศทางที่เหมาะสม (เช่นถ้าสีแดงและสีเขียวมาเป็น>
แสงจะถูกปล่อยออกไปทางขวาและมันจะเป็นสีเหลือง) ตัวละครที่ไม่ใช่ช่องว่างอื่น ๆ ดูดซับแสงทั้งหมด แสงถูกปล่อยออกมาจาก@
สัญลักษณ์ในสี่ทิศทาง
เมื่อโปรแกรมทำงานก็ควรสร้างผลลัพธ์เช่นเดียวกับอินพุต แต่มีรังสีติดตาม เพราะนี่คือ 2 มิติและฉันรับประกันในการป้อนข้อมูลที่รังสีจะไม่เคยข้ามจะไม่มีปัญหากับสิ่งนั้น แต่ละเรย์ควรแสดงด้วยตัวอักษร r = แดง, g = เขียว, b = น้ำเงิน, c = cyan, m = ม่วงแดง, y = เหลือง, w = ขาว จะไม่มีสีประกอบไปด้วยเลย ปลอกเป็นสิ่งสำคัญที่แตกต่างจากอินพุต หลังจากเอาต์พุตนั้นค่าของแสงที่จับด้วยเครื่องหมายคำถาม (เรียงตามลำดับจากซ้ายไปขวาบนลงล่าง) ควรแสดงผลลัพธ์เป็นเปอร์เซ็นต์และสี ตัวอย่างเช่นอินพุตนี้:
/ @
-
\R> ?
@B/
ควรให้ผลลัพธ์:
/wwwwwwwwwwwwwwwwww@w
w -
w\R>mmmmmmmmmmmmmmmmm?
w b
@B/
#1: 72% Magenta
อีกจุดสำคัญที่ควรทราบ - เมื่อรวมสองสีเข้าด้วยกันโดยใช้ "ปริซึม" (ลูกศร) ความแข็งแรงของแสงที่รวมกันจะกลายเป็นความแข็งแรงเฉลี่ยของทั้งสอง ผลลัพธ์จะต้องตรงตามที่ระบุไว้ (เช่น #x: [x] [x] x% Color )
หากภาษาของคุณไม่สามารถอ่านจาก STDIN และเขียนไปยัง STDOUT ให้สร้างฟังก์ชั่น (ไม่ระบุชื่อหรือแลมบ์ดาเมื่อมี) ที่รับอินพุตเป็นอาร์กิวเมนต์และส่งกลับผลลัพธ์
คำสั่งสำหรับคอมไพเลอร์โครงสร้างที่จำเป็นหรือแนะนำสำหรับโปรแกรมทั้งหมดหรือส่วนใหญ่ที่สร้างขึ้นในภาษา ฯลฯ สามารถละเว้นได้ ตัวอย่างเช่น#include
และusing
คำสั่ง (แต่ไม่ใช่#define
) อาจถูกลบในภาษา C-style #/usr/bin/perl -options
ใน Perl และ
Module Module1
Sub Main()
End Sub
End Module
ใน VB.NET เช่น หากคุณนำเข้าเนมสเปซหรือเพิ่มคำสั่งรวมถึงโปรดทราบพวกเขาในคำตอบของคุณ
มันยากพอไหมตอนนี้? :)
>
แสงคือการจับภาพซึ่งจะผ่านตรงมา และถ้าw
จากด้านบนผ่านสิ่งR
นั้นb
มาจากด้านล่าง ในที่สุด (ฉันคิดว่า) คุณผิดเกี่ยวกับรังสีที่ไม่ผ่าน เพื่อให้ตัวอย่างหนึ่งบรรทัดผลลัพธ์ที่ถูกต้องจะเป็น@R> B@
อย่างไร
@
มุมซ้ายล่างเปล่งแสงทั้งสี่ทิศทางใช่ไหม? w
ดังนั้นโดยเฉพาะอย่างยิ่งมันปล่อยออกมาว่า และฉันไม่ได้เว้นระยะห่างอย่างน้อยก็อย่างน้อยก็แสดงผลใน Chromium เมื่อผ่านไปจริง ๆ การแก้ไขของฉันอาจชัดเจนขึ้น