Imgur to darmowa usługa hostingu obrazów. Wiele osób z niego korzysta. Oto przykład linku imgur: http://i.imgur.com/T55muMD.png . Napisz program, który stale wyświetla losowe (prawidłowe) linki imgur. Na przykład, oto przykładowe wyjście z mojego programu (nie pokazano, ponieważ zawiera pewne sztuczki, które musisz sam wymyślić):
http://i.imgur.com/uFmsA.png
http://i.imgur.com/FlpHS.png
http://i.imgur.com/eAbsZ.png
http://i.imgur.com/lEUsq.png
http://i.imgur.com/RuveH.png
http://i.imgur.com/BoEwB.png
http://i.imgur.com/HVFGQ.png
http://i.imgur.com/PZpMg.png
http://i.imgur.com/DezCY.png
Pomocne wskazówki:
- Kiedy imgur był nowy, zastosowano pięcioliterowe linki.
- Kiedy imgur był nowy, liczby nie były używane.
- Możesz to wykorzystać na swoją korzyść: znajduj tylko 5-literowe obrazy linków zawierające tylko litery. Tak właśnie robi mój program.
- Ponadto wszystkie obrazy są zapisywane jako
.png
.
Wymagania:
- Ciągłe wyświetlanie losowych linków imgur
- Linki uważane za wystarczająco „losowe”, jeśli 50 jest generowanych bez powtórzeń
- Po odwiedzeniu linki muszą być obrazem
- Linki muszą zaczynać się
http://i.imgur.com/
i kończyć.png
- Wynik to liczba znaków
Zrobiłem to w Javie (TERRIBLE do gry w golfa) w 452 znakach. Nie pokazano tutaj, ponieważ zawiera kilka sztuczek, które musisz sam wymyślić!)
Odpowiedzi:
PHP 5.4, 76 znaków
Adresy URL są generowane w kolejności sekwencyjnej przy użyciu tylko wielkich liter i nigdy się nie powtarzają, zgodnie z literą specyfikacji.
źródło
Perl (93 + 4 = 97)
Stosując własne Imgur za losowy mechanizm, aby uzyskać swoje adresy URL obrazu, które nie są PNG URL większość czasu:
(Potrzebujesz do tego Mojoliciousa .)
źródło
HTML (152)
Rejestruje wszystkie znalezione obrazy w konsoli JavaScript za pomocą
console.log()
. Działa we wszystkich testowanych przeglądarkach (Firefox, Chrome, IE9, Safari i Opera).Zabawne jest to, że w mgnieniu oka migają różne śmieszne zdjęcia.
Spróbuj! (jsFiddle pakuje to w bardziej kompletną stronę HTML, ale przeglądarki akceptują również pojedynczy element).
Rekwizyty do niesamowitej metody losowego ciągu przez doubleletap !
Gdzie mogę zobaczyć konsolę JavaScript i zarejestrowane obrazy?
źródło
Perl (87)
Znalezienie obrazów wielkimi, małymi i cyframi od 0 do dowolnych znaków, któregoś dnia.
źródło
Mathematica , 108
Dodano białe spacje.
źródło
Python (
174158156)Chcę krótszych nazw modułów w Pythonie. Również łatwiejsza metoda uzyskiwania losowych liter. :)
Wyjaśnienie:
Operatorem modułu w łańcuchu jest polecenie formatowania, w tym przypadku zastępuje ono „% s” w łańcuchu 5 losowymi dużymi literami,
a
jeśli nazwa strony internetowej (typstr
)('File'not in urllib.urlopen(a).read())
ma wartość Prawda, gdy „Plik” (z „Nie znaleziono pliku!”) jest nie znaleźć w kodzie HTML URL. (typebool
)bool
*str
=str
ifbool
= True, więc wyświetli się tylkoa
wtedy, gdy „Kod” nie zostanie znaleziony w kodzie HTML.źródło
chr(random.randint(65,90))
'File'
:)'XXXXX'
niżrange(5)
. Ma to również tę zaletę, że nie wymaga odstępu między nim ain
.Unikalne podejście do Pythona.
361355334332322314 znaków - trochę zaciemnionych, nic trudnego. Ostrzegamy, że może to spowodować wyjątkowo wysoką gęstość zdjęć kotów.Wynik:
źródło
R, 182 znaków
źródło
Python, 153 znaki
Chociaż to działa, jest cholernie wolne i może zająć wiele sekund, zanim zwróci jakiekolwiek wyjście.
Zainspirowany rozwiązaniem @ beary605 - uratował mi kilka znaków, gdy planowałem sprawdzić obraz według nagłówka typu zawartości.
źródło
random.sample
:) To znacznie lepszy sposób wybierania postaci.Bash
(129, 121)(117, 109)Mam dwie wersje: iteracyjną i nieskończoną rekurencyjną (która powoli pochłonie całą pamięć). Obie wersje sprawdzają, czy rzeczywiście istnieje plik PNG (pliki jpg, gif i inne typy są ignorowane).
Iteracyjny (stary) (129):
Rekurencyjny (stary) (121):
Uwaga : Może występować problem ze zgodnością z grep. Mój podręcznik grep stwierdza, że
-s
wycisza wyjście grep, ale nic nie robi. Jednak użycie--quiet
,--silent
lub-q
zamiast działa.EDYTOWAĆ:
Korzystanie z nagłówków treści teraz po przeczytaniu https://codegolf.stackexchange.com/a/10499/7195 :)
Iteratywny (117):
Rekurencyjny (109):
źródło
Rubinowy (103 znaki)
źródło
.png
na końcu adresu URL.Narzędzia Bash / wiersza poleceń, 72 znaki
Sprytna technika pożyczania @ memowe :
Osiąga to ciągłą pętlę poprzez ponowne wykonanie się w tej samej przestrzeni procesu.
źródło