พิมพ์คลื่นไซน์แบบต่อเนื่องที่เลื่อนไปตามแนวตั้งบนเทอร์มินัล โปรแกรมไม่ควรยุติและควรเลื่อนคลื่นอย่างต่อเนื่อง (ยกเว้นจนกว่าจะถูกรบกวน) คุณอาจสันนิษฐานว่าการล้นเกินนั้นไม่ใช่ปัญหา (เช่นคุณอาจใช้ลูปไม่สิ้นสุดกับตัวนับที่เพิ่มขึ้นหรือการเรียกซ้ำแบบไม่สิ้นสุด)
คลื่นควรตอบสนองคุณสมบัติดังต่อไปนี้:
- Amplitude = 20 chars (ความกว้างสูงสุด)
- จุด = 60 ถึง 65 บรรทัด (รวม)
- ผลลัพธ์ควรประกอบด้วยช่องว่าง, บรรทัดใหม่และ
|
- หลังจากแต่ละบรรทัดของเอาต์พุตหยุดชั่วคราวเป็น 50ms
ตัวอย่างผลลัพธ์:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผลลัพธ์ข้างต้นควรดำเนินต่อไปตลอดไปเว้นแต่จะถูกขัดจังหวะเป็นอย่างอื่นเช่น SIGINT หรือ SIGKILL หรือปิดหน้าต่างเทอร์มินัลหรือคุณปิดเครื่องหรือดวงอาทิตย์กลืนโลก ฯลฯ
รหัสที่สั้นที่สุดชนะ
บันทึก. ฉันตระหนักถึงปัญหาที่คล้ายกันในDisplay Scrolling Wavesแต่ไม่เหมือนกันทั้งหมด ในปัญหาของฉันคลื่นจะไม่ถูกเลื่อน "ในสถานที่" - เพียงแค่เอามันออกไปใน terminal นอกจากนี้นี่เป็นปัญหาแบบ ascii-art ดังนั้นอย่าใช้ Mathematica ในการพล็อต