พ่อแม่ผัวของฉันมีบ่อปลาในบ้านของพวกเขาเต็มไปด้วยปลาคราฟ มันไม่ได้ข้ามความคิดของฉันจนกว่าฉันจะสังเกตเห็นสารสกัดต่อไปนี้จากรหัสของฉัน
',') & '_'
... ฉันหันหน้าเข้าหาปลาจากหน้าจอของฉัน ...
ซึ่งทำให้ฉันมีความคิดที่ดี ...
การแสวงหาของฉันสำหรับคุณนักกอล์ฟที่รักของฉันคือการสร้างตู้ปลา ASCII แบบบรรทัดเดียวด้วยกฎต่อไปนี้:
- ขนาดของตู้ปลาจากด้านข้างของถังไปยังอีกด้านหนึ่งของถังควรมีขนาดไม่เกิน 60 ตัวอักษรและไม่ควรใหญ่กว่า 80 ตัวอักษร ต้องระบุด้านของถังโดยใช้ท่อ / บาร์ (
|
ตัวอักษร ) - ปลาจะต้องสามารถ "ว่ายน้ำ" จากซ้ายไปขวาระหว่างด้านข้างของถัง ขณะที่พวกเขากำลังจะหมุนจำเป็นต้องมีมุมมองด้านหน้าสำหรับการเปลี่ยนจากทิศทางหนึ่งไปยังอีกทิศทางหนึ่ง
ปลาต้องมีลักษณะดังนี้:
}}< }} ',')
ปลาว่ายน้ำถูกต้อง(',' {{ >{{
ปลาว่ายซ้าย}}('_'){{
ปลาหันหน้าไปทางด้านหน้า
เมื่อปลาหันไปเปลี่ยนทิศทาง (โอกาส 30%) มันจะต้องเริ่มจากทิศทางเดียวหันหน้าไปทางด้านหน้าจากนั้นหันไปอีกทิศทางหนึ่ง ... ตรวจสอบให้แน่ใจว่ามีที่ว่างเพียงพอสำหรับปลาที่จะเปิด ขอบของรถถังขั้นต่ำ ...
- หากปลาไม่ได้เป่าฟองหรือเปลี่ยนทิศทางมันจะดำเนินต่อไปในทิศทางที่มันกำลังเผชิญหากมันได้รับภายในหกช่องว่างด้านข้างของถังมันจะเปลี่ยนทิศทาง
- ปลา (หันหน้าไปทางซ้ายหรือขวา) ในบางโอกาส (โอกาส 10%) หยุดที่จะเป่าฟองสบู่อย่างต่อเนื่อง (
.oO*
) ดังนั้นปลาจะต้องมีพื้นที่ว่างอยู่ข้างๆพวกมันเพื่อให้ฟองมีอยู่ดังนั้นปลาจึงสามารถ เพียงว่ายน้ำอยู่ใกล้กับด้านข้างประหยัดพื้นที่เดียว ฟองจะต้องหายไปก่อนที่ปลาจะสามารถเดินหน้าต่อไป ...
ชุดตัวอย่างของเส้นพฤติกรรมของปลาโดยมี-
ตัวอักษรระบุช่องว่างเนื่องจากคุณลักษณะการแสดงรหัสที่นี่ค่อนข้างเข้มงวด ... ฉันคาดหวังว่าขีดกลางเหล่านี้จะถูกแทนที่ด้วยช่องว่างเมื่อคุณใช้รหัสนี้ ...
แต่ละบรรทัดที่นี่อาจถูกพิจารณาว่าเป็นเฟรมตามเวลา
|-}}< }} ',')----------|
|--}}< }} ',')---------|
|---}}< }} ',')--------|
|----}}< }} ',')-------|
|-----}}< }} ',')------|
|-----}}< }} ',').-----|
|-----}}< }} ',')o-----|
|-----}}< }} ',')O-----|
|-----}}< }} ',')*-----|
|---------}}('_'){{----|
|-----------(',' {{ >{{|
|----------(',' {{ >{{-|
|---------(',' {{ >{{--|
|--------.(',' {{ >{{--|
|--------o(',' {{ >{{--|
|--------O(',' {{ >{{--|
|--------*(',' {{ >{{--|
|--------(',' {{ >{{---|
|-------(',' {{ >{{----|
|------(',' {{ >{{-----|
ฯลฯ ตัวอย่างข้างต้นคืออย่างที่ฉันพูดเล็ก แต่คุณได้รับความคิดทั่วไป ...
รหัสที่สั้นที่สุดชนะ ...
ฉันคาดหวังเอาท์พุทในบรรทัดเดียวกัน (ถ้าเป็นไปได้) ถ้าไม่แสดงเฟรมหลังจากเฟรมอย่างต่อเนื่องเป็นเรื่องปกติ ... ไม่ว่าคุณจะไปหนึ่งบรรทัดหรือหลายบรรทัดขึ้นอยู่กับคุณ หากคุณกำลังทำหลายบรรทัดพวกเขาจะต้องคั่นด้วยบรรทัดใหม่
นอกจากนี้ยังมีการจับเวลาระหว่างเฟรม 2000ms นี่คือผลบังคับใช้
มาดูกันว่าคุณมีอะไรบ้าง!