Các thách thức
Cho hai chuỗi, mỗi chuỗi có độ dài lên tới 30, bao gồm các ký tự ASCII có thể in (mã ), đặt chúng lên thang cân bằng trong vài byte mã nhất! Điều này bao gồm các bước sau:
- Tính và so sánh trọng số của chuỗi
- Chọn thang đo nghệ thuật ASCII nghiêng phù hợp
- Đặt hai chuỗi lên thang đo
Các chuỗi có thể được truyền dưới dạng một mảng, hai đối số hoặc bất kỳ phương thức hợp lý nào khác.
Các trọng lượng của một chuỗi được định nghĩa là tổng các trọng lượng của các nhân vật của chuỗi, trong đó:
- Dấu cách có trọng số 0 (
)
- Chữ thường có trọng số là 2 (
abcdefghijklmnopqrstuvwxyz
) - Chữ in hoa có trọng số 4 (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
) - Tất cả các biểu tượng khác có trọng số 3 (
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
)
Các vảy trông như thế này:
. _ | _- * / \ | - * / \ _- * | / \ _- * | / \ / \ | * ------ * / \ | / \ | / \ | * ------ * | ______ | ______
_. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / \ | * ------ * ______ | ______
. | ______ | ______ / \ | / \ / \ | / \ / \ | / \ / \ | / \ * ------ * | * ------ * | | ______ | ______
Nếu chuỗi đầu tiên nặng hơn, hãy sử dụng bản vẽ đầu tiên làm cơ sở cho đầu ra của bạn; nếu chuỗi thứ hai nặng hơn, sử dụng bản vẽ thứ hai; nếu các chuỗi có trọng lượng bằng nhau, sử dụng thứ ba. Khoảng trắng Trailing được cho phép.
Tôi sẽ sử dụng một phân đoạn của bản vẽ thứ ba làm cơ sở cho tất cả các ví dụ sau.
Chuỗi đầu tiên nên được đặt vào chảo bên trái và chuỗi thứ hai vào chảo bên phải.
Đặt một chuỗi trên pan bằng cách đặt các ký tự không phải không gian của nó trong vùng 6x5 ngay phía trên dấu gạch ngang, như được đánh dấu bằng #
s ở đây (bạn có thể kết thúc phần ghi đè của thang cân bằng - điều đó tốt):
###### _ ###### ###### ###### / ###### \ * ------ *
Tất cả các nhân vật này nên được "giải quyết" tức là. hoặc ở trên một -
ký tự hoặc một ký tự khác từ chuỗi:
ĐÚNG SAU ____ ____ ____ f / \ / \ / \ l \ / \ / \ / \ / hov \ / s \ / oating \ / eri ng \ / ettled \ * ------ * * ------ * * ------ *
Ngoài ra, toàn bộ ngăn xếp phải càng phẳng càng tốt, có nghĩa là trong sáu cột rộng 1, chiều cao của cao nhất và chiều cao của ngắn nhất không được chênh lệch quá 1:
SAI ĐÚNG ĐÚNG ĐÚNG [cao nhất: 5] [cao nhất: 4] [cao nhất: 5] [cao nhất: 2] [ngắn nhất: 0] [ngắn nhất: 2] [ngắn nhất: 4] [ngắn nhất: 2] 5__5_ ____ 5_5__ ____ 45445 & / \ 445454 / \ 45445 $% & $ @ 445454 / \ / 45445 &% @% $ & 445454% & $ @% & / 45445 \ / & $ @ $ &% \ / 445454 \ / $ @ $% $$ \ * ------ * * ------ * * ------ * * ------ *
Thứ tự / sắp xếp chính xác của các nhân vật không quan trọng. Sau đây là tất cả các sắp xếp hợp lệ cho chuỗi "Cân nhắc từ của bạn!":
____ ____ ____ ____ / \ / \ / \ / \ DS! \ / nợ oe \ u! Wd \ của chúng tôi Wihuos yoiwgr eghioo / Cân nặng \ / egyrr! \ / Wrhd! S \ / rrsuwy \ * ------ * * ------ * * ------ * * ------ *
Các trường hợp thử nghiệm
INPUT: "CODE GOLF", "thử thách mã hóa" TRỌNG LƯỢNG: 32, 32 VÍ DỤ ĐẦU RA: . | ______ | ______ / \ | / \ / \ | nge / OO \ | challe / CFGLED \ | / mã hóa \ * ------ * | * ------ * | | ______ | ______
VÀO: "", "$" TRỌNG LƯỢNG: 0, 3 VÍ DỤ ĐẦU RA: _. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / $ \ | * ------ * ______ | ______
INPUT: "BẠN BIẾT NHỮNG GÌ NÓI!", "Có_always_a_relevant_xkcd" TRỌNG LƯỢNG: 75, 65 VÍ DỤ ĐẦU RA: . tr_a_s | _hekx_y | - * elcdta _- * | revanw _- * | / e's_al \ T / \ | * ------ * AUYOHY | A! / OTSMEW \ | * ------ * | ______ | ______
+1
. Thứ nhất: nếu không gian không "cân nhắc" bất cứ điều gì và không được đưa vào tác phẩm nghệ thuật thì tại sao lại bao gồm chúng? Đó chỉ là chi phí không cần thiết để đầu tiên lọc chúng ra. Thứ hai: cảm giác này giống như một thử thách "2 trong 1" / tắc kè hoa đối với tôi - Thử thách 1: Xác định chuỗi nào "nặng hơn", Thử thách 2: Tạo ra một số nghệ thuật ASCII.