ฉันคิดถึงการสาธิตเก่า ๆ ที่แสดงความสามารถของคอมพิวเตอร์เมื่อพวกเขาถูกเรียกว่า x86 แทนที่จะเป็น i3, i5 และ i7 หนึ่งในคนแรกที่ฉันดูใน 386 ของฉันคือการสาธิตแบบไม่จริงจาก Future Crewที่ตอนนี้ฉลองครบรอบ 25 ปี ในนาทีที่ 0:43ส่วนแรกของการสาธิตจะเริ่มขึ้นและเราจะเห็นข้อความเลื่อนตามเส้นทางไซน์ มาลองเลียนแบบเอฟเฟกต์นั้นในศิลปะ ASCII กันเถอะ!
ความท้าทาย
รับเส้นทางนี้:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
และข้อความป้อนเข้าให้วาดข้อความตามเส้นทางดังกล่าว:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
โปรดทราบว่าช่องว่างนับเป็นตัวอักษรในเส้นทางและเส้นทางซ้ำตัวเองหากข้อความยาวกว่าตัวอย่าง
ส่วนภาพเคลื่อนไหว
เมื่อคุณวาดข้อความแล้วให้รอ 100 ms (เพื่อสร้างภาพเคลื่อนไหวประมาณ 10 fps) และวาดข้อความอีกครั้ง แต่เริ่มจากตำแหน่งถัดไปของเส้นทาง ดังนั้นสำหรับเฟรม#n
ให้คำนวณn modulo 40
และเริ่มวาดในตำแหน่งต่อไปนี้ของเส้นทางด้วยข้อความที่จัดชิดซ้ายของผืนผ้าใบเสมอ:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
ดังนั้นสำหรับเฟรม 10 เราจะได้:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
หมายเหตุ
- อินพุตจะเป็นหนึ่งเดียว
string
(หรือchar
อาเรย์อะไรก็ตาม) พร้อมข้อความที่ทำให้เคลื่อนไหวและจะมีอักขระอย่างน้อย 1 ตัวเสมอ - อักขระที่ถูกต้องในการเคลื่อนไหวคืออักขระในชุด ASCII ที่พิมพ์ได้
- เส้นทางที่จะติดตามจะเป็นไปตามที่กำหนด
- ข้อความจะถูกจัดตำแหน่งชิดซ้ายของผืนผ้าใบเสมอดังนั้นเอฟเฟกต์จะเป็นข้อความที่โบกมือเหมือนธงโดยไม่มีการกระจัดข้อความ และผ้าใบฉันหน้าจอเฉลี่ยหรือสิ่งที่คุณจะใช้ในการแสดงข้อความ ;-)
- เฟรมต้องมีความชัดเจนของตัวละคร / พิกเซลจากเฟรมก่อนหน้ายกเว้นว่าอักขระ / พิกเซลจะเหมือนกันในเฟรมทั้งสอง
- ความเร็วของแอนิเมชั่นนั้นไม่สำคัญว่ามันจะทำงานได้อย่างราบรื่นหรือเร็วเท่าที่อุปกรณ์ของคุณสามารถทำได้ (เราสามารถตั้งค่าขั้นต่ำ 5 fps แต่นี่ไม่ใช่ข้อกำหนด) เพียงปรับความเร็วเพื่อให้ลื่นไหลและไม่ต้องกังวลหากเวลาในการรอไม่เท่ากัน
- ภาพเคลื่อนไหวจะวนซ้ำไม่รู้จบ
นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดอาจทำให้แอนิเมชั่นชนะได้!