Mã-Bowling
Bạn đã được Brunswick Bowling thuê để tạo ra một chương trình đơn giản để xuất văn bản Code Bowling
trên màn hình của họ. Công ty này là đáng một xu khá và bạn cảm thấy bạn có thể lừa đảo họ cho khá chút tiền mặt.
Mô tả công việc nêu rõ rằng họ trả tiền trên cơ sở tính điểm và bạn khá tự tin rằng bạn có thể điều khiển hệ thống tính điểm của họ thành lợi thế của bạn và nhận được kiểm tra lương lớn nhất có thể từ những người này. Để làm như vậy sẽ yêu cầu bạn đóng gói càng nhiều mã càng tốt vào chương trình / chức năng của bạn, mặc dù hệ thống tính điểm của họ được thiết kế để ngăn bạn làm như vậy.
Nhận ra con heo đất của bạn, hãy để mã!
Thử thách
Thách thức là chỉ đơn giản là xuất văn bản Code Bowling
, chính xác như nó được viết ở đây, với số điểm cao nhất có thể. (Xem phần: Hệ thống chấm điểm bên dưới)
Hàng đầu và cuối dòng mới (ngắt dòng) được chấp nhận.
Mã của bạn có thể là toàn bộ chương trình hoặc chỉ là một chức năng thực thi.
Quy tắc
Bắt buộc: Thử thách này là sử dụng Code-Bowling: Common Rules, Revision 1.0.0 ; Xem Meta để biết chi tiết.
Ký tự: Tỷ lệ byte
trong Code-Bowling, số đếm ký tự được ưu tiên hơn số đếm byte. Lý do rõ ràng cho điều này là các ký tự unicode nhiều byte (ví dụ) có thể được sử dụng thay cho các ký tự unicode một byte để tăng số lượng byte và sẽ làm cho bowling biết nhiều hơn về việc ai đổi tên hầu hết các biến bằng các ký tự unicode byte cao hơn ai là chiến lược tạo ra mã phức tạp có ý nghĩa.Tên biến / Hàm / Đối tượng
Tất cả các tên biến (hoặc con trỏ đối tượng, tên hàm, v.v.) phải dài 1 ký tự. Thời gian duy nhất được chấp nhận để sử dụng tên biến 2 ký tự là sau khi tất cả các biến 1 ký tự có thể đã được sử dụng. Thời gian duy nhất được chấp nhận để sử dụng tên biến 3 ký tự là sau khi tất cả các biến 2 ký tự có thể đã được sử dụng. Vân vân.Mã không sử dụng
Tất cả mã phải được sử dụng. Có nghĩa là chương trình phải không luôn luôn hoàn thành đúng nhiệm vụ nếu bất kỳ ký tự riêng lẻ (hoặc bộ (các) ký tự khác nhau) bị / bị xóa. Đương nhiên, một tập hợp con của chương trình sẽ không thể tự hoàn thành nhiệm vụ mà không có phần còn lại của chương trình.Nhận xét Nhận
xét không được phép đối với số lượng ký tự, trừ khi được chương trình / chức năng của bạn sử dụng bằng cách nào đó.
Hệ thống chấm điểm:
Thử thách Pangram:
Một pangram là một câu sử dụng mỗi chữ cái ít nhất một lần. (The quick brown fox jumps over the lazy dog).
Loại thử thách này có một hệ thống tính điểm được thiết kế trong đó một pangram hoàn hảo sẽ đạt được điểm tối đa theo lý thuyết (mặc dù bạn không bắt buộc phải sử dụng mọi ký tự ít nhất một lần.) Ngoài ra, sử dụng bất kỳ ký tự nào nhiều hơn một lần sẽ bắt đầu bị phạt. Thách thức này cũng mở rộng ra nhiều hơn là chỉ các ký tự chữ cái.
Ghi điểm:
- Mỗi nhân vật được sử dụng sẽ tăng điểm của bạn lên 1.
- Việc sử dụng lặp lại bất kỳ ký tự chữ và số nào (az, AZ, 0-9) sẽ dẫn đến việc bị trừ 3 điểm mỗi lần lặp lại (lần sử dụng đầu tiên không dẫn đến việc khấu trừ).
- Việc sử dụng lặp lại các dấu câu cơ bản
([!?.-,":';])
- bao gồm cả dấu ngoặc - sẽ dẫn đến việc trừ 2 điểm mỗi lần lặp lại.- Việc sử dụng lặp lại các ký tự ASCII khác
{`~@#$%^&*_+=|\/><}
- bao gồm cả dấu ngoặc nhọn - sẽ dẫn đến việc trừ 4 điểm mỗi lần lặp lại.- Việc sử dụng khoảng trắng, tab và dòng mới sẽ dẫn đến việc bị trừ 1 điểm cho mỗi lần sử dụng. Đó là, họ không tính vào tổng số nhân vật.
- Các ký tự không được đề cập ở trên (Nhân vật kỳ lạ) sẽ bị trừ 1 điểm cho mỗi lần sử dụng. Đó là, họ không tính vào tổng số nhân vật.
Công cụ chấm điểm:
Một tiện ích chấm điểm tự động đã được tạo và có thể được tìm thấy ở đây .
Đây là một biến thể mã-bowling . Chương trình có số điểm cao nhất sẽ chiến thắng! (Vì có số điểm tối đa 94
, bất cứ ai đạt được trước (nếu có thể đạt được) sẽ được đánh dấu là câu trả lời được chấp nhận, mặc dù những người khác có thể tiếp tục trả lời cho vui)