Mniej więcej rok temu, 31 grudnia 2015 roku, wpadłem na pomysł, że:
Klamka łaskawie zebrała postacie ze społeczności PPCG i zapewniła im bezpieczeństwo przez rok.
Aż 74 osób uczestniczyło więc mamy spiffing 74 druku ASCII postaci do zabawy!
Oto 74 znaki ciągu kapsuły czasowej 2016 w kolejności, w jakiej zostały przesłane:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Oto 74 znaki ciągu kapsuły czasowej 2016 w kolejności ASCII (uwaga wiodąca):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
To nie jest dużo do pracy, ale tutaj lubimy wyzwania.
Wyzwanie
Aby określić, który język jest „najlepszy” za pomocą ciągu kapsuły czasowej, będziemy mieli 6 (na 201 6 ) wyzwań, które zwiększają trudność, przy czym w każdym z nich należy użyć podzbioru 74 znaków kapsuły czasu.
Posiadanie 6 różnych wyzwań pomaga konkurować większej liczbie języków, ale tylko najlepsze języki będą w stanie odpowiedzieć na wszystkie z nich i uzyskać wysoką ocenę.
Punktacja:
- Każde wyzwanie będzie oceniane od 0 do 74 w zależności od liczby użytych postaci.
- Wyższe wyniki są lepsze.
- Jeśli Twój język nie może ukończyć wyzwania, Twój wynik za to wyzwanie wynosi 0.
- Każdy niepusty podzbiór wyzwań może zostać ukończony.
- Twój końcowy wynik to suma wyników ze wszystkich 6 wyzwań.
- Najlepszy możliwy wynik końcowy to 6 × 74 lub 444 .
Wyzwania
1. Uruchom
Jeśli kod języka nie może działać w pierwszej kolejności, nie będzie w stanie nic zrobić.
Napisz najdłuższy możliwy program (używając tylko 74 znaków kapsuły czasu, pamiętaj), który działa / wykonuje się bez błędów kompilacji i czasu wykonywania.
Nie ma znaczenia, co robi program, nie ma znaczenia, czy ma wejście / wyjście lub wchodzi w nieskończoną pętlę, liczy się tylko to, że działa bez błędów. (Ostrzeżenia są w porządku, podobnie jak błędy spowodowane złym wprowadzeniem użytkownika).
Komentarze są dozwolone, więc może to być tak proste jak
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
w Pythonie za wynik 74.
(Nie bój się odpowiedzieć, jeśli jest to jedyne wyzwanie, które Twój język może wykonać, ale nie oczekuj też dużej liczby głosów).
Wynik = długość programu (dłuższy program jest lepszy)
2. I / O
Język, który nie ma formy wejścia lub wyjścia, jest prawie tak samo bezużyteczny, jak język, który nie może działać.
Biorąc pod uwagę drukowalny znak ASCII od !
(0x33) do }
(0x7D) włącznie, wypisz drukowalny znak ASCII przed nim i po nim.
Dane wyjściowe mogą mieć długość dwóch łańcuchów lub list albo znaki oddzielone spacją lub znakiem nowej linii.
Na przykład, jeśli dane wejściowe to }
dane wyjściowe to |~
lub ["|", "~"]
lub | ~
lub |\n~
.
Podobnie, "
jest wyjściem dla !
i AC
jest wyjściem dla B
.
Wynik = 74 - długość programu (krótszy program jest lepszy)
3. Rozgałęzienie
Warunki warunkowe są często wymogiem kompletności Turinga , co często jest wymogiem przydatności języka.
Biorąc pod uwagę dodatnią liczbę całkowitą, jeśli kończy się cyframi dziesiętnymi, 16
zmień na 6
a 7
i wyślij wynik; w przeciwnym razie wyprowadzaj dane wejściowe bez zmian. Jeśli chcesz, możesz użyć ciągów wejściowych / wyjściowych.
Przykłady:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
Wynik = 74 - długość programu (krótszy program jest lepszy)
4. Pętla
Język, który nie potrafi wykonywać pętli, odradza się powtarzający się kod, tak żmudny, że musisz na chwilę przerwać programowanie.
Biorąc pod uwagę dodatnią liczbę całkowitą, wyślij kwadrat ASCII-art o tej długości boku wypełniony wzorem koncentrycznych mniejszych kwadratów, który na przemian między dowolnymi dwoma wyraźnymi drukowalnymi znakami ASCII . Nie muszą to być te same dwa znaki dla różnych danych wejściowych.
Na przykład:
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
Wynik = 74 - długość programu (krótszy program jest lepszy)
5. Matematyka
Język, który nie jest dobry z liczbami i matematyką, może równie dobrze być dla kierunków humanistycznych.
Nie przyjmuj danych wejściowych, ale wyślij 72 dzielniki liczb całkowitych z 2016 r. , Dodatnie i ujemne, w dowolnej kolejności. Dane wyjściowe można sformatować jako ciąg lub listę w rozsądny sposób.
Przykład:
-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
Wynik = 74 - długość programu (krótszy program jest lepszy)
6. Ezoteryzm
(Nie, nie to .) My w PPCG lubimy nasze ezoteryczne rzeczy , a quines jest tego dobrym przykładem.
Napisz najdłuższy możliwy quine, zgodnie ze zwykłymi zasadami quine . Quine to program, który nie pobiera żadnych danych wejściowych i wyjściowych.
Wynik = długość programu (dłuższy program jest lepszy)
Szczegółowe zasady
- W każdym z 6 wyzwań twój program musi być podzbiorem 74 znaków kapsuły czasowej ułożonych w dowolny sposób. Może to być pusty podzbiór lub niewłaściwy podzbiór , więc każdy Twój program może mieć tylko 0 i 74 znaki.
- Pojedynczy znak nowej linii na końcu wejścia / wyjścia / kodu jest w porządku wszędzie, ponieważ niektóre języki tego wymagają lub nie można tego łatwo uniknąć.
- O ile nie określono inaczej, każde wyzwanie może zostać wykonane jako funkcja lub pełny program zgodnie z naszymi domyślnymi ustawieniami .
- Wszystkie wyzwania muszą być ukończone w tym samym języku.
- Musisz użyć języka (lub wersji języka) utworzonego przed 2017 r. W dowolnym miejscu na Ziemi .
- Każdy może odpowiedzieć, niezależnie od tego, czy dodałeś postać do kapsuły czasu, czy nie.
Możesz używać postaci z kapsuły czasu 2016 w swoich własnych wyzwaniach.
6×74 or 444
nie jest to możliwe, ponieważ oznaczałoby to puste programy, które zachowują się inaczej. dlatego 442 jest faktycznym minimum, ponieważ oznacza to, że dwa z 3 programów pobierających dane wejściowe mają w sobie znak