PPCG'nin Cevaplanmamış Soruları


9

Bu sevgili StackExchange sitesi çok fazla zorluğa ve çok iyi cevaplara sahip. Peki ya hiç cevaplanmayan zorluklar ?

Görev

PPCG'den rastgele rastgele açık cevapsız (tam olarak sıfır yanıtlı bir soru) sorusu yazdıracak bir program veya işlev yazın. Tüm olası zorluklar aynı olasılıkla üretilmelidir.

Giriş

  • Hiçbir giriş alınmayacaktır.

Çıktı

  • Yalnızca başlık, etiketler ve yeni satırlarla ayrılması gereken bağlantı olmalıdır.
    • Başlık tam olarak karşılaştığınız gibi olmalıdır.
    • Etiketlerin kesin bir çıktı biçimi yoktur, ancak tüm etiketleri içermelidir.
    • Bağlantı question-name, soru kimliğinden sonra olabilir veya içermeyebilir ve bu soruna yol açmalıdır.
  • İnsan tarafından okunabilir bir biçime çevrilebilir veya çevrilemez.
    • & için &
  • Öncü ve sondaki boşluklara izin verilir.

Örnekler

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

puanlama

Bu olduğu gibi , bayt cinsinden en kısa cevap kazanır.


8
Stack-exchange-api zorluklarından gerçekten bıktım .
— Rɪᴋᴇʀ

3
@Riker Uhm ... geri bildiriminiz için teşekkür ederiz? Bu nedenle neden aşağı indireceğinizi gerçekten bilmiyorum ama sanırım size daha fazla güç.
— totallyhuman

6
Bunun için aşağı inmedim. Aşağı düştüm, çünkü sorunun sıkıcı olduğunu düşünüyorum. Ayrıca, kapalı soruların eşit çıkma olasılığına sahip olması gerekir mi?
— Rɪᴋᴇʀ

1
Ben @Riker olarak bu konuda güçlü hissetmiyorum rağmen, bunun olması için oraya görünüyor sürü son zamanlarda API'yla ilgili zorlukların; o kadar ki kendimi ~ 21 saat boyunca API kullanarak bloke başardı !
— Shaggy

4
İlginç bir şekilde, bu zorluk test sırasında ortaya çıkacak, ancak bir kez cevap verdiğimde, artık testte görünmeyecek.
— HyperNeutrino

Yanıtlar:


7

JavaScript + HTML, 271 250 232 bayt

Görünüşe göre Dates sahte rasgele sayılar olarak kullanabilirsiniz . Bunu Shaggy'nin cevabından çaldım .

(Kotanızın yalnızca yaklaşık 4'ünü kullanır)

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)

Bir dizi yapar q, sonra arama yapar g(1), sonuçların ilk sayfasını getirir ve bunu q'ya ekler. Daha sonra, istek söylerse , bir sonraki sayfayı getiren, sonuna kadar ve HTML belgesine yazana kadar has_moreçağırır g(f+1)(Bu, yanıtı otomatik olarak silecektir)

Cevaplanmamış tüm soruları umursamıyorsak , en son 30 (Kotanızın yalnızca 1'ini kullanır):

JavaScript + HTML, 213 196 179 bayt

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


Üzgünüm, @Artyer, kendi cevabım üzerinde çalışmaya odaklandım, beni birkaç dakika yumruk attığınızı hiç fark etmedim. Sizinkine benzer olduğunu düşünüyorsanız cevabımı sildiğim için mutluyum.
— Shaggy

@Shaggy Tamam. İkinci cevabı aynı zamanda cevabınızı yazarken de yazdım, bu yüzden benzer şekilde sonuçlanmaları mutlu bir tesadüf.
— Artyer

Getirilmesi gereken sayfa sayısına kodlama yaparak birkaç bayt kaydedebilirsiniz. Bunun yerine j.has_more?g(f+1), deneyin++f<5?g(f)
— Shaggy

Ayrıca yerini alabilir q=q.concat(j.items)ile q=[...q,...j.items]. Görünüşe Tags: göre isteğe bağlıdır, böylece de bırakabilirsiniz. Ve gerek yok join q.tags, bir dizeye birleştirilirken bir dizeye zorlanacaktır. Son olarak, final için şablon hazır bilgisi kullanmak da birkaç bayt tasarruf etmelidir.
— Shaggy

@Shaggy Maalesef kota ile tanıştım. Yine de 425 saniye içinde sıfırlanır.
— Artyer

6

Python + istekleri + json + rastgele + html, 249239 bayt

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']]))

İstediğimden daha uzun çıktı.

@Totallyhuman sayesinde ilk öğeyi kullanmak R.choiceyerine kullanmak için -10 bayt R.shuffle.


Kullanarak birkaç bayt kaydedebilir misiniz random.shuffle?
— totallyhuman

... Bekle, hatta daha iyisi random.choice()?
— totallyhuman

1
@totallyhuman Gelen adının değiştirilmesi bayt sayısında aslında bir fark yaratmaz: P Ama teşekkürler .choice()!
— HyperNeutrino

Json kütüphanesine ihtiyacınız yok, r.get(url).json()bunun yerine kullanın
— ovs

Bu hesaba katılmıyor has_more. Sadece ilk 30'dan rastgele seçer.
— Artyer

0

Bash 255323 bayt

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

Cevapsız / cevapsız toplamlar için yanlış sonuç döndürme gibi görünüyor. Genel fikir - bir öğe ile rastgele sayfa almak yerine toplam alın.

Bash 174153 bayt

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

Tüm sorulardan değil, son 30'dan rastgele bir soru seçer. Komut satırından çalışır. Gerekli curl w3m, jq ve recode.

sonuç:

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

Hepsinden seçim yapmanız gerektiğine eminim. Ama yine de PPCG'ye hoş geldiniz!
— NoOneIs Here
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.