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.