Domande senza risposta di PPCG


9

Questo caro sito StackExchange ha tante sfide e tante buone risposte. Ma che dire delle sfide a cui non è mai stata data risposta ?

Compito

Scrivi un programma o una funzione che stamperà una sfida pseudo-casuale aperta senza risposta (come in, una domanda con risposte esattamente zero) da PPCG. Tutte le possibili sfide dovrebbero essere prodotte con la stessa probabilità.

Ingresso

  • Nessun input verrà preso.

Produzione

  • Devono essere solo il titolo, i tag e il collegamento che devono essere separati da nuove righe.
    • Il titolo deve essere esattamente come nella sfida.
    • I tag non hanno un formato di output rigoroso ma devono includere tutti i tag.
    • Il collegamento può includere o meno question-namel'ID dopo la domanda e deve portare alla sfida.
  • Può o meno essere tradotto in un formato leggibile dall'uomo.
    • & per &
  • Sono ammessi spazi iniziali e finali.

Esempi

Encode a steganographic encoder into a package
code-challenge,unicode,steganography
/codegolf/65159/encode-a-steganographic-encoder-into-a-package

Simple predictive keyboard CG
code-golf
/codegolf/76196/simple-predictive-keyboard-cg

punteggio

Dato che si tratta di , vince la risposta più breve in byte.


8
Mi sto davvero stufando delle sfide di scambio-api-stack .
Rɪᴋᴇʀ

3
@Riker Uhm ... grazie per il tuo feedback? Davvero non so perché dovresti sottovalutare per quel motivo, ma immagino più potere per te.
totalmente umano

6
Non ho votato per questo. Ho annullato il voto perché penso che la domanda sia noiosa. Inoltre, le domande chiuse dovrebbero avere la stessa probabilità di essere emesse?
Rɪᴋᴇʀ

1
Anche se non mi sento così forte come @Riker, ultimamente sembrano esserci molte sfide relative alle API; così tanto che sono riuscito a farmi bloccare dall'uso dell'API per ~ 21 ore !
Shaggy,

4
È interessante notare che questa sfida si presenterà durante i test, ma una volta che ho risposto, non si presenterà più nei test.
HyperNeutrino,

Risposte:


7

JavaScript + HTML, 271 250 232 byte

Apparentemente puoi usare Dates come numeri pseudo-casuali. Ho rubato questo dalla risposta di Shaggy .

(Utilizza solo circa 4 della tua quota)

q=[]
g=f=>fetch('//api.stackexchange.com/questions/unanswered?site=codegolf&page='+f).then(r=>r.json().then(j=>(q=[...q,...j.items])^j.has_more?g(f+1):document.write(`<pre>${(q=q[new Date%q.length]).title}
${q.tags}
`+q.link)))
g(1)

Crea un array q, quindi chiama g(1), che recupera la prima pagina dei risultati e la aggiunge a q. Quindi, se la richiesta lo dice has_more, quindi chiama g(f+1), che recupera la pagina successiva, fino a quando non raggiunge la fine e scrive sul documento HTML (che eliminerà automaticamente la risposta)

Se non ci interessiamo di tutte le domande senza risposta, solo le 30 più recenti (utilizza solo 1 della tua quota):

JavaScript + HTML, 213 196 179 byte

fetch`//api.stackexchange.com/questions/unanswered?site=codegolf`.then(r=>r.json().then(j=>document.write(`<pre>${(j=j.items[new Date%j.items.length]).title}
${j.tags}
`+j.link)))


Mi dispiace, @Artyer, ero così concentrato sul lavorare sulla mia stessa risposta, non ho mai notato che mi avresti battuto sul pugno di qualche minuto. Sono felice di eliminare la mia risposta, se ritieni che sia simile alla tua.
Shaggy,

@Shaggy Va bene. Ho anche scritto la seconda risposta nello stesso momento in cui hai scritto la tua risposta, quindi è una coincidenza felice che siano finiti in modo simile.
Artyer,

È possibile salvare alcuni byte codificando il numero di pagine che devono essere recuperate. Invece di j.has_more?g(f+1)provare++f<5?g(f)
Shaggy,

Puoi anche sostituirlo q=q.concat(j.items)con q=[...q,...j.items]. Sembra Tags: facoltativo, quindi puoi lasciar perdere anche quello. E non è necessario join q.tags, sarà costretto in una stringa quando viene concatenato a una stringa. Infine, usare un modello letterale per il finale dovrebbe farti risparmiare anche qualche byte.
Shaggy,

@Shaggy Sfortunatamente, ho raggiunto la mia quota. Si ripristina in 425 secondi però.
Artyer,

6

Python + richieste + json + random + html, 249 239 byte

import requests as r,json,random as R,html
j=R.choice(json.loads(r.get('http://api.stackexchange.com/questions/no-answers?site=codegolf').text)['items'])
print('\n'.join([html.unescape(j['title']),'Tags: '+', '.join(j['tags']),j['link']]))

È risultato più lungo di quanto mi piacerebbe.

-10 byte grazie a @totallyhuman usando R.choicepiuttosto che R.shuffleprendendo il primo elemento.


Puoi salvare qualche byte usando random.shuffle?
totalmente umano

... Aspetta, o meglio ancora random.choice()?
totalmente umano

1
@totallyhuman La modifica del nome inpurt in realtà non fa alcuna differenza in bytecount: P Ma grazie per .choice()!
HyperNeutrino,

Non hai bisogno della libreria json, usa r.get(url).json()invece
ovs

Questo non tiene conto has_more. Sceglie casualmente tra i primi 30.
Artyer,

0

Bash 255 232 byte

a="api.stackexchange.com/questions/";b="?site=codegolf";c=$(w3m $a"unanswered"$b"&filter=total"|tr -cd 0-9);w3m $a"no-answers"$b"&pagesize=1&page="$((RANDOM%c))|jq -r ".items[0]|.title,(.tags|join(\", \")),.link"|recode html..utf-8

Sembra che i risultati errati vengano restituiti per totali per nessuna risposta / senza risposta. Idea generale: ottieni il totale, quindi ottieni una pagina casuale con un oggetto.

Bash 174 153 byte

w3m api.stackexchange.com/questions/no-answers?site=codegolf|jq -r ".items[$RANDOM%(.items|length)]|.title,(.tags|join(\", \")),.link"|recode html..utf-8

Seleziona una domanda a caso dalle ultime 30, non da tutte le domande. Funziona dalla riga di comando. Arricciatura richiesta w3m, jq e ricodifica.

risultato:

Tips for golfing in Charcoal
code-golf, tips
/codegolf/117269/tips-for-golfing-in-charcoal

Sono abbastanza sicuro che devi scegliere tra tutti loro. Ma benvenuto in PPCG comunque!
NoOneIsHere
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.