Suggeriscimi una sfida!


14

Sono troppo annoiato e voglio una sfida da risolvere. Ma non vedo sfide interessanti e sono troppo pigro per cercarne una. Puoi (bene, tecnicamente il tuo codice) suggerirmi uno?


I / O

Input: nessuno.

Output: un collegamento a una sfida casuale aperta (cioè non chiusa) ("Sfida" esclude i !) Su PPCG. Non puoi collegarti a una risposta in una sfida, solo una sfida. (Non ho chiesto una risposta interessante!)


Esempi

Valido:

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

Non valido:

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)

Possiamo produrre http://codegolf.stackexchange.com/questions/93288/invece di http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake(notare la mancanza del nome della sfida).
user41805

@Kritixi Lithos Certo, che funziona.
Matthew Roh,

Non tutte le domande sui suggerimenti hanno la parola "suggerimenti" nel loro nome. Vedi questo per esempio. È consentito o intendevi rimuovere le sfide nel tag "suggerimenti"?
seshoumara,

@seshoumara Quest'ultima è anche la ragione per cui ho digitato "suggerimenti" come tag.
Matthew Roh,

Ci sono circa 6k domande che soddisfano i tuoi criteri su PPCG. Tutti devono avere la possibilità di essere scelti a caso o posso scegliere a caso tra i primi 50 risultati che ottengo da un link di ricerca?
seshoumara,

Risposte:


4

JavaScript (ES6), 209 byte

Funziona, ma molto probabilmente colpirà il limite API StackExchange molto rapidamente. Probabilmente ci vorrà un po 'di tempo per emettere il link, poiché sta controllando casualmente una domanda valida.

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


Il PO ha affermato che tutte le domande che soddisfano i requisiti devono avere la possibilità di essere scelte a caso.
seshoumara,

@seshoumara dovrebbe essere risolto ora.
Tom,

Salva 4 byte rilasciando la versione dell'API dall'URL.
Shaggy,


Posso confermare che questo genera anche sfide per i suggerimenti ...
FlipTack,

2

Python 3, 452 339 byte

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

Un po 'sgradevole e non molto golf-y, ma non sono riuscito a trovare un modo migliore per farlo. Dal momento che questa forza più o meno bruta dell'API, spenderai la tua quota abbastanza rapidamente e inizierai a ricevere errori, ma dopo alcune ore funzionerà di nuovo.

EDIT: salvato 113 byte rimuovendo più cose non necessarie, grazie a NoOneIsHere.


Usi solo luna volta, quindi non è necessario.
NoOneIsHere

È corretto. L'ho fatto in modo da poter successivamente stampare il collegamento se era valido, ma che ha stampato il collegamento API anziché quello normale. Grazie per avermi ricordato.
Lirico

Inoltre, è possibile online il trye forse il except.
NoOneIsHere

Anche questo è corretto. Grazie ancora.
Liricamente

Felice di aiutare. Pad
NoOneIsHere

1

SEDE SQL: 79 byte

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

Ci sono 2 catture. Uno devi aspettare un po 'prima di eseguire di nuovo o hai un hit nella cache (come mi ha detto una mod) e ottieni solo il numero ID della domanda.


Penso che sia valido perché non sono così pigro da non essere nemmeno in grado di scrivere
Matthew Roh

Sì! La tua parola è sulla sfida
Christopher,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.