Khoảng một năm trước vào ngày 31 tháng 12 năm 2015, tôi có ý tưởng rằng:
Doorknob đã thu thập các nhân vật từ cộng đồng PPCG và giữ chúng an toàn trong một năm.
Một số lượng lớn 74 người đã tham gia để chúng tôi có 74 nhân vật ASCII có thể in được để chơi!
Dưới đây là 74 ký tự của chuỗi thời gian năm 2016 theo thứ tự chúng đã được gửi:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Dưới đây là 74 ký tự của chuỗi viên nang thời gian 2016 theo thứ tự ASCII (lưu ý không gian hàng đầu):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
Nó không phải là rất nhiều để làm việc với, nhưng quanh đây chúng tôi thích một thử thách.
Các thách thức
Để xác định ngôn ngữ nào là "tốt nhất" với chuỗi thời gian, chúng ta sẽ có 6 thử thách (cho năm 201 6 ) làm tăng độ khó trong đó mỗi ngôn ngữ bạn phải sử dụng một tập hợp con gồm 74 ký tự viên nang thời gian.
Có 6 thử thách riêng biệt giúp đảm bảo nhiều ngôn ngữ có thể cạnh tranh, nhưng chỉ những ngôn ngữ tốt nhất mới có thể trả lời tất cả chúng và đạt điểm cao.
Ghi điểm:
- Mỗi thử thách sẽ được tính điểm từ 0 đến 74 tùy thuộc vào số lượng nhân vật được sử dụng.
- Điểm cao hơn là tốt hơn.
- Nếu ngôn ngữ của bạn không thể hoàn thành một thử thách, điểm của bạn cho thử thách đó là 0.
- Bất kỳ tập hợp con không trống của các thách thức có thể được hoàn thành.
- Điểm cuối cùng của bạn là tổng điểm của cả 6 thử thách.
- Điểm cuối cùng tốt nhất có thể là 6 × 74 hoặc 444 .
Những thách thức
1. Chạy
Nếu mã của một ngôn ngữ không thể chạy ở nơi đầu tiên, nó sẽ không thể làm bất cứ điều gì cả.
Viết chương trình đầy đủ dài nhất có thể (chỉ sử dụng 74 ký tự viên nang thời gian, nhớ) chạy / thực thi mà không có lỗi thời gian biên dịch hoặc thời gian chạy.
Nó không quan trọng chương trình làm gì, nó không quan trọng nếu nó có đầu vào / đầu ra hoặc đi vào một vòng lặp vô hạn, nó chỉ quan trọng là nó chạy không có lỗi. (Cảnh báo là ok, cũng như các lỗi gây ra bởi đầu vào của người dùng xấu.)
Nhận xét được cho phép, vì vậy điều này có thể đơn giản như
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
trong Python cho số điểm 74.
(Đừng ngại trả lời nếu đây là thử thách duy nhất mà ngôn ngữ của bạn có thể hoàn thành, nhưng cũng không mong đợi nhiều phiếu bầu.)
Điểm = thời lượng chương trình (chương trình dài hơn là tốt hơn)
2. Tôi / O
Một ngôn ngữ không có hình thức đầu vào hoặc đầu ra gần như vô dụng như ngôn ngữ không thể chạy.
Đưa ra một ký tự ASCII có thể in từ !
(0x33) đến }
(0x7D), bao gồm xuất ký tự ASCII có thể in trước và sau nó.
Đầu ra có thể là một chuỗi dài hai danh sách hoặc danh sách hoặc các ký tự được phân tách bằng dấu cách hoặc dòng mới.
Ví dụ, nếu đầu vào là }
đầu ra có thể là |~
hay ["|", "~"]
hay | ~
hay |\n~
.
Tương tự như vậy, "
là đầu ra cho !
và AC
là đầu ra cho B
.
Điểm = 74 - thời lượng chương trình (chương trình ngắn hơn là tốt hơn)
3. Khả năng phân nhánh
Các điều kiện thường là một yêu cầu cho tính đầy đủ của Turing , thường là một yêu cầu cho một ngôn ngữ có ích.
Cho một số nguyên dương, nếu nó kết thúc bằng các chữ số thập phân 16
thì thay đổi 6
thành a 7
và xuất kết quả; mặt khác, đầu ra không đổi. Bạn có thể sử dụng chuỗi cho đầu vào / đầu ra nếu muốn.
Ví dụ:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
Điểm = 74 - thời lượng chương trình (chương trình ngắn hơn là tốt hơn)
4. Vòng lặp
Một ngôn ngữ không thể thực hiện các vòng lặp sẽ sinh ra mã lặp đi lặp lại rất tẻ nhạt, bạn sẽ cần phải nghỉ lập trình một lúc.
Cho một số nguyên dương, xuất ra một hình vuông nghệ thuật ASCII có chiều dài cạnh đó chứa đầy một mẫu hình vuông nhỏ hơn đồng tâm xen kẽ giữa bất kỳ hai ký tự ASCII có thể in riêng biệt nào . Chúng không phải là hai ký tự giống nhau cho các đầu vào khác nhau.
Ví dụ:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
Điểm = 74 - thời lượng chương trình (chương trình ngắn hơn là tốt hơn)
5. Toán
Một ngôn ngữ không tốt với các con số và toán học cũng có thể dành cho các chuyên ngành nhân văn.
Không có đầu vào nhưng đầu ra 72 ước số nguyên của năm 2016 , dương và âm, theo bất kỳ thứ tự nào. Đầu ra có thể được định dạng dưới dạng chuỗi hoặc danh sách một cách hợp lý.
Thí dụ:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
Điểm = 74 - thời lượng chương trình (chương trình ngắn hơn là tốt hơn)
6. Bí truyền
(Không, không phải mà .) Chúng tôi ở PPCG như chúng tôi những thứ bí truyền , và quines là một ví dụ tốt về điều đó.
Viết quine dài nhất bạn có thể, theo quy tắc quine thông thường . Một quine là một chương trình không có đầu vào và đầu ra chính nó.
Điểm = thời lượng chương trình (chương trình dài hơn là tốt hơn)
Quy tắc cụ thể
- Trong mỗi 6 thử thách, chương trình của bạn phải là tập hợp con của 74 ký tự viên nang thời gian được sắp xếp lại theo bất kỳ cách nào bạn muốn. Nó có thể là một tập hợp con trống hoặc một tập hợp con không phù hợp , vì vậy mỗi chương trình của bạn có thể có ít nhất là 0 và có đến 74 ký tự.
- Một dòng mới duy nhất ở cuối đầu vào / đầu ra / mã là ổn ở bất cứ đâu vì một số ngôn ngữ yêu cầu điều này hoặc nó không thể dễ dàng tránh được.
- Trừ khi có quy định khác, mỗi thử thách có thể được hoàn thành dưới dạng chức năng hoặc chương trình đầy đủ theo mặc định của chúng tôi .
- Tất cả các thử thách phải được hoàn thành trong cùng một ngôn ngữ.
- Bạn phải sử dụng một ngôn ngữ (hoặc phiên bản của một ngôn ngữ) được tạo trước năm 2017 ở bất cứ đâu trên Trái đất .
- Bất cứ ai cũng được chào đón để trả lời, cho dù bạn đã thêm một ký tự vào viên nang thời gian hay không.
Hãy sử dụng các nhân vật viên nang thời gian 2016 trong các thử thách của riêng bạn.
6×74 or 444
là không thể, vì điều đó có nghĩa là các chương trình trống, bằng cách nào đó hành xử khác đi. do đó, 438 là mức tối thiểu thực tế, vì điều đó có nghĩa là hai trong số 3 chương trình tham gia đầu vào có một char trong đó