(Lấy cảm hứng từ 95 nhân vật của ASCII ... 95 trích dẫn phim )
Các thách thức
Cho đầu vào n
, đầu ra nth
số Fibonacci . Bạn có thể sử dụng 0
hoặc 1
lập chỉ mục, vui lòng nêu rõ trong bài nộp của bạn. Đơn giản, phải không? Điều hấp dẫn là bạn phải lấy bộ ký tự của câu trả lời trước đó, loại bỏ hai ký tự khỏi nó và thêm một ký tự riêng. Các nhân vật riêng biệt phải
- không được từ bộ ký tự của câu trả lời trước đó
- là từ tập hợp (ASCII có thể in, dấu cách, dòng mới, tab ngang)
và do đó, tổng kích thước bộ ký tự của bạn sẽ chính xác nhỏ hơn một bộ so với bộ câu trả lời trước đó.
Câu trả lời ban đầu
Đệ trình đầu tiên phải chứa một tập hợp con (tất cả ASCII có thể in, dấu cách, dòng mới và tab ngang) với hai ký tự được xóa. Mỗi lần gửi sau đó phải giới hạn câu trả lời của họ ở định dạng chỉ ASCII gốc này (có nghĩa là bạn không thể thêm ký tự Unicode hoặc ký tự ASCII mở rộng ... xin lỗi Jelly, APL, et al.).
Ví dụ và làm rõ
- Giả sử câu trả lời đầu tiên là bằng C và chứa (hầu hết tất cả ASCII, dòng mới và tab ngang có thể in) và bỏ qua
%
và^
từ bộ ký tự của nó. Sau đó, lần gửi thứ hai phải xóa hai ký tự khỏi ký tự trước đó (gần như tất cả các ký tự ASCII, dòng mới và tab ngang) có thể in và thêm vào%
hoặc^
. Có lẽ đó là câu trả lời PowerShell một lớp mà bỏ qua dòng mới. Và như vậy. - Nếu câu trả lời trước có
print(){}!*+
tập ký tự (12 ký tự), bài gửi của bạn có thể cóprint(){}!
(10 ký tự) và một ký tự bổ sung,print(){!+
(10 ký tự) và một ký tự bổ sung, v.v. - Nếu câu trả lời trước có
print(){}!*+
tập ký tự của nó (12 ký tự), thì bài nộp của bạn không thể cóprint()
và&
(8 ký tự) như tập ký tự của nó, kể từ đó12 - 8 > 1
. - Nếu câu trả lời trước có
print(){}!*+
bộ ký tự của nó (12 ký tự), thì bài nộp của bạn không thể cóprint(){}!
(10 ký tự) cộng với ký tự bổ sung*
như bộ ký tự của nó, mặc dù đó là 11 ký tự, nhưng*
nó được bao gồm trong bộ trước đó. - Không phải mọi nhân vật trong bộ ký tự của bạn phải làm một cái gì đó hữu ích cho trình của bạn. Ví dụ: nếu câu trả lời trước có
print(){}!*+
tập ký tự của nó và ngôn ngữ của bạn có tích hợp!
tính toán chuỗi Fibonacci và#
bắt đầu nhận xét, việc gửi của bạn có thể!#print(){}
vẫn còn hiệu lực. - Bạn có thể sử dụng cùng một nhân vật từ bộ ký tự của bạn nhiều lần. Ví dụ: giả sử bộ ký tự của bạn là
!*#_
, câu trả lời của bạn có thể!!!**#**#_!!
và sẽ được chấp nhận. - Ngoài mã của bạn (và một lời giải thích cũng rất hay!) Xin vui lòng liệt kê rõ ràng bộ ký tự của bạn, để dễ dàng hơn cho việc gửi trong tương lai.
Chiến thắng
Người chiến thắng thử thách sẽ là người đăng bài thứ hai bài nộp gần đây (nghĩa là không phải người đăng bài cuối cùng, vì họ đã phá vỡ chuỗi).
Quy tắc cuối cùng
Quy tắc trả lời thông thường áp dụng:
- Cùng một người không thể đăng hai lần liên tiếp
- Nếu một câu trả lời được coi là không hợp lệ (ví dụ: nó đã sử dụng một ký tự bị cấm hoặc không tính toán chính xác), thì nó cần phải bị xóa (và bất kỳ câu trả lời tiếp theo nào cũng loại bỏ nó)
- Hai người dùng đăng "cùng một lúc" sẽ phải để cho trình gửi trước đó đứng
- Cùng một ngôn ngữ không thể được đăng hai lần liên tiếp. Đối với mục đích của quy tắc này, các ngôn ngữ của cùng một gia đình (ví dụ: Python 2 và Python 3) được tính là "cùng một ngôn ngữ".
Điều cuối cùng:
- Bài đăng này hoạt động tốt nhất nếu bạn sắp xếp theo "Cũ nhất" để các câu trả lời theo đúng thứ tự.
- Kyle Gullion đã xây dựng trình kiểm tra mã bằng Python tại đây để xác minh xem bạn có thiếu hoặc sử dụng sai ký tự không.