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)

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();


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


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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.