Zaproponuj mi wyzwanie!

14

Jestem zbyt znudzony i chcę wyzwanie do rozwiązania. Ale nie widzę żadnych ciekawych wyzwań i jestem zbyt leniwy, by je znaleźć. Czy możesz (cóż, technicznie twój kod) zaproponować mi jeden?


I / O

Dane wejściowe: brak.

Wynik: link do losowego otwartego (tj . Niezamkniętego ) wyzwania („Wyzwanie” nie obejmuje !) Na PPCG. Nie możesz linkować do odpowiedzi w wyzwaniu, tylko wyzwanie. (Nie poprosiłem o ciekawą odpowiedź!)


Przykłady

Ważny:

http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake
http://codegolf.stackexchange.com/questions/113796/raise-a-single-number
http://codegolf.stackexchange.com/questions/113898

Nieważny:

http://codegolf.stackexchange.com/questions/78152/tips-for-golfing-in-matl (tips question)
http://codegolf.stackexchange.com/questions/113896/josephus-problem (closed)
http://codegolf.stackexchange.com/questions/84260/add-two-numbers/84365#84365 (linked to answer)
Matthew Roh
źródło
Czy możemy wypisać http://codegolf.stackexchange.com/questions/93288/zamiast http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake(zauważ brak nazwy wyzwania).
user41805
@Kritixi Lithos Pewnie, że działa.
Matthew Roh
Nie wszystkie pytania ze wskazówkami mają w nazwie słowo „porady”. Zobacz to na przykład. Czy to dozwolone, czy chciałeś usunąć wyzwania w tagu „tips”?
seshoumara
@seshoumara To drugie, dlatego też wpisałem „wskazówki” jako tag.
Matthew Roh
Istnieje około 6 tys. Pytań spełniających Twoje kryteria dotyczące PPCG. Czy wszyscy muszą mieć szansę na losowe wybranie, czy mogę wybrać losowo z pierwszych 50 wyników uzyskanych z linku wyszukiwania?
seshoumara

Odpowiedzi:

4

JavaScript (ES6), 209 bajtów

Działa, ale najprawdopodobniej bardzo szybko osiągnie limit interfejsu API StackExchange. Wyprowadzenie linku zajmie prawdopodobnie trochę czasu, ponieważ losowo sprawdza poprawne pytanie.

_=>fetch(`//api.stackexchange.com/2.2/questions/${new Date%2e4}?site=codegolf`).then(_=>_.json()).then((a,b=a.items)=>{if(!b.length||b[0].tags.includes`tips`||b[0].closed_date)f();else console.log(b[0].link)})

f=_=>fetch(`//api.stackexchange.com/2.2/questions/${new Date%2e4}?site=codegolf`).then(_=>_.json()).then((a,b=a.items)=>{if(!b.length||b[0].tags.includes`tips`||b[0].closed_date)f();else console.log(b[0].link)})

f();

Tomek
źródło
PO stwierdził, że wszystkie pytania spełniające wymagania muszą mieć szansę na losowy wybór.
seshoumara
@seshoumara powinna zostać teraz naprawiona.
Tom
Zaoszczędź 4 bajty, usuwając wersję interfejsu API z adresu URL.
Kudłaty
Mam codegolf.stackexchange.com/questions/173/... co nie jest ważne
sergiol
Potwierdza, że ​​generuje to także wyzwania dotyczące wskazówek ...
FlipTack,
2

Python 3, 452 339 bajtów

from requests import*
from random import*
while 1:
    n=randrange(999999)
    r=get("http://api.stackexchange.com/questions/%d?site=codegolf"%n).json()
    if r["items"]:
        m=r["items"][0]
        if "tips" not in m["tags"]:
            try:m["closed_date"]
            except:print("http://codegolf.stackexchange.com/q/%d"%n);break

Trochę brzydki i niezbyt golfowy, ale nie mogłem wymyślić lepszego sposobu na zrobienie tego. Ponieważ to mniej lub bardziej brutalne działanie interfejsu API, dość szybko wydasz swój przydział i zaczniesz pojawiać się błędy, ale po kilku godzinach znów zacznie działać.

EDYCJA: Zaoszczędzono 113 bajtów, usuwając wiele niepotrzebnych rzeczy, dzięki NoOneIsHere.

LyricLy
źródło
Używasz tylko lraz, więc nie jest to konieczne.
NoOneIsHere
To jest poprawne. Zrobiłem to, aby móc później wydrukować link, jeśli był prawidłowy, ale to wydrukowało link API zamiast normalnego. Dzięki za przypomnienie.
LyricLy
Ponadto możesz online tryi być może except.
NoOneIsHere
To też jest poprawne. Dzięki jeszcze raz.
LyricLy
Miło, że mogłem pomóc. Pad
NoOneIsHere
1

SEDE SQL: 79 bajtów

Select Id from posts where ClosedDate IS NULL AND Tags !='tips' ORDER BY RAND()

Istnieją 2 połowy. Musisz odczekać chwilę przed ponownym uruchomieniem lub masz trafienie w pamięć podręczną (jak powiedział mi mod) i dostajesz tylko numer identyfikacyjny pytania.

Krzysztof
źródło
Myślę, że jest to ważne, ponieważ nie jestem tak leniwy, że nawet nie mogę pisać
Matthew Roh
Tak! Twoje słowo zależy od twojego wyzwania
Christopher