Viết chương trình in ra thông báo lỗi cú pháp của trình biên dịch hoặc trình thông dịch. Thông báo lỗi nên gây hiểu lầm để những người duy trì mã sẽ mất nhiều ngày để phát hiện ra rằng lỗi đã bị làm giả, điều đó có nghĩa là, bạn nên che giấu (và che giấu ý định của mình). Ngoài ra, lỗi phải càng chính xác càng tốt và nên tham chiếu đúng mã.
Đối với các ngôn ngữ tuân thủ, giả sử người duy trì mã của bạn sẽ thực hiện compile program.p && ./program
trên dòng lệnh để biên dịch VÀ chạy chương trình, điều đó có nghĩa là anh ta không thể phân biệt nếu đầu ra đến từ trình biên dịch hoặc chính chương trình. Ngoài ra, giả sử người bảo trì mã của bạn sẽ bật các thông báo lỗi cú pháp.
Để tham khảo, đây là một ví dụ tôi đã thực hiện: https://gist.github.com/359604
Các DATA
phần mã hóa chuỗi thông báo lỗi, và băm %abcdef
là bảng giải mã. Lỗi được in tham chiếu đến dấu gạch chéo ngược, làm cho bộ duy trì mã sẽ cố gắng đếm dấu gạch chéo ngược.
Bài dự thi sẽ được xếp loại bởi:
- Mã có một ý định rõ ràng
/6
- Mã tái tạo lỗi chính xác
/16
(điểm của bạn bắt đầu bằng 16 và chia cho các yếu tố tương ứng cho từng điểm không chính xác)- Viết hoa đúng: 4
- Số dòng và số cột đúng: 4
- Từ đúng: 2 cho mỗi từ không chính xác
- Số dòng được tham chiếu đánh lừa người bảo trì mã
/3
Ví dụ,
./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
nhận được 8 (16/2) về tính chính xác khi thiếu "mã thông báo" bất ngờ trước "mã thông báo", trình thông dịch Python bình thường hiển thị
./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
Nếu điểm "mã tái tạo lỗi chính xác" của bạn dưới 1, mục nhập của bạn không đủ điều kiện.
Trong trường hợp hòa, tôi sẽ đưa ra các yếu tố chấm điểm bổ sung.