Wielka Piramida w Gizie, największa piramida w Egipcie, jest nie tylko najstarszym z Siedmiu Cudów Starożytnego Świata, ale także jedynym, który pozostaje w dużej mierze nienaruszony. Budowa egipskich piramid może zająć do 20 lat i jest tak duża, że Al-Aziz Uthman, syn wielkiego Saladyna, który zmiażdżył krzyżowców, musiał zrezygnować z rozbiórki wielkich piramid w Gizie, ponieważ uznano to za zbyt wielkie zadanie . Egipskie piramidy budowano głównie jako grobowce dla faraonów i ich małżonków w czasach Starego i Średniego Królestwa (ok. 2686–1690 pne), a od 2008 r. Odkryto 138 egipskich piramid.
Zadanie polega na utworzeniu programu, który wprowadza sekwencję odległości oddzielonych spacją i produkuje piramidy tekstowe 10 × 10 oddzielone tymi odległościami. Odległość 1 jest równa dwóm postaciom.
Piramida tekstowa będzie wyglądać następująco:
/\
/--\
/----\
/------\
/--------\
/----------\
/------------\
/--------------\
/----------------\
/------------------\
Jeżeli wejście składa się tylko z podziału linii, powstanie jedna piramida, jak wyżej . Dla każdej piramidy piramidy po lewej stronie są wyświetlane tak, jakby były z przodu.
Przykład I
Wejście:
4 3 1
Wynik:
/\ /\ /\/\
/--\ /--\ /--\-\
/----\ /----\/----\-\
/------\/------\-----\-\
/--------\-------\-----\-\
/----------\-------\-----\-\
/------------\-------\-----\-\
/--------------\-------\-----\-\
/----------------\-------\-----\-\
/------------------\-------\-----\-\
Przykład II
Wejście:
0 9
Wynik:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\/----------------\
/------------------\-----------------\
Przykład III
Wejście:
11
Wynik:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\ /----------------\
/------------------\ /------------------\
Zwycięzcą jest aplikacja spełniająca te wymagania w jak najmniejszej liczbie znaków.
Odniesienie: Wikipedia.org
Odpowiedzi:
Golfscript, 70 znaków
Bezpośredni port mojego rozwiązania Ruby , więc jestem pewien, że można to skrócić o kilka znaków.
źródło
Windows PowerShell, 122
132133139 139Skrypt testowy .
Losowe wprowadzanie również tworzy ładne obrazy:
źródło
$input=Read-Host
u góry, w przeciwnym razie nie prosi o dane wejściowe. Jak należy to uruchomić?echo 0 3 4 1|powershell -noprofile -file pyramids.ps1
Lub z PowerShell'0 1 4 3' | .\pyramids.ps1
. Jest to częsty problem z golfa w PowerShell, niestety, jak można akceptować tylko bądź rurami w wejście lub wejścia interaktywnego. PowerShell tak naprawdę nie ma pojęcia stdin w innych językach i środowiskach, co czasem się pojawia. Zwykle wybieram dane wejściowe, chyba że zadanie wyraźnie wymaga interakcji, na przykład Zgadnij numer .Haskell, 148 znaków
Jestem z tego całkiem niezadowolony! To po prostu wydaje się zbyt długie. Pomysły?
źródło
++
na pojedynczą listę i użyć concat aka>>=id
. Nie wiem czy to pomoże. Innym punktem byłoby użyciefoldr1
zamiastfoldr
.++
sekwencji oszczędza tylko jedną postać na przedmiot, a koszt końcowyconcat
jest tutaj zbyt wysoki. Niefoldr
można użyćfoldr1
formularza, ponieważ wynikiem jest czas,String
podczas gdy typ listy to[Int]
(1
wariantyfold
wymagają, aby były takie same.)Python, 123 znaki
źródło
Ruby 1.9, 116 znaków
źródło
Perl,
130 126132 znakówNieco krótsza wersja, która pobiera dane wejściowe jako argumenty wiersza poleceń zamiast ze standardowego wejścia:
Nie mogę uwierzyć, że nikt nie zrobił jeszcze wyrażenia regularnego. Perl jest daleki od bycia moim najlepszym językiem, więc to może prawdopodobnie stracić znacznie więcej. Byłbym zainteresowany zobaczeniem implementacji sed, jeśli ktoś jest gotowy na wyzwanie.
(Dzięki, @mbx, za 4 znaki).
źródło
JavaScript, 396 bajtów
Nie wygram z JavaScriptem, ale teraz jest wpis JavaScript :)
Zastosowanie:
_("1 2 3")
itp.źródło
Rubin (112)
Nieco krótszy niż rozwiązanie Ruby firmy Ventero, z innym podejściem. Właśnie zacząłem uczyć się języka Ruby, więc prawdopodobnie można to nieco zmniejszyć.
źródło
PowerShell,
10598 bajtów, najściślejszy odczyt specyfikacji-7 bajtów od odpowiedzi migimaru .
Skrypt testowy:
Wynik:
PowerShell,
10194, zabawa z jednym wiodącym białym znakiemźródło
Nie mogłem uzyskać wersji C # 3 krótszej niż ta. Nie wiem dokładnie, ile postaci się liczy, ale podejrzewam, że przegrałem. :-(
źródło