Bana bir meydan okuma öner!


14

Çok sıkıldım ve çözmek için bir meydan okuma istiyorum. Ama ilginç bir zorluk görmüyorum ve aramak için çok tembelim. (Peki, teknik olarak kodunuz) bana bir tane önerebilir misiniz?


I / O

Giriş: Yok.

Çıktı: PPCG'de rastgele açık (yani kapalı olmayan) mücadeleye bir bağlantı ("Zorluk" hariç !). Bir meydan okumadaki bir cevaba bağlanamazsınız, Sadece bir meydan okuma. (İlginç bir cevap istemedim!)


Örnekler

Geçerli:

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

Geçersiz:

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)

http://codegolf.stackexchange.com/questions/93288/Bunun yerine çıktı alabilir miyiz http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake(meydan okuma adının eksikliğine dikkat edin).
user41805

@Kritixi Lithos Elbette, bu işe yarıyor.
Matthew Roh

Tüm ipuçları sorularının adlarında "ipuçları" yoktur. Bkz bu bir örnek. Buna izin veriliyor mu yoksa "ipuçları" etiketindeki zorlukları mı kaldırmak istediniz?
seshoumara

@seshoumara İkincisi, etiket olarak 'ipuçlarını' yazmamın nedeni de bu.
Matthew Roh

PPCG'deki kriterlerinizi karşılayan yaklaşık 6 bin soru var. Herkesin rastgele seçilme şansına sahip olması gerekir mi yoksa bir arama bağlantısından aldığım ilk 50 sonuçtan rastgele seçebilir miyim?
seshoumara

Yanıtlar:


4

JavaScript (ES6), 209 bayt

Çalışıyor, ancak büyük olasılıkla StackExchange API sınırına çok hızlı bir şekilde ulaşacak. Geçerli bir soru için rastgele kontrol ettiği için bağlantıyı çıkarmak muhtemelen biraz zaman alacaktır.

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


OP, gereksinimlere uyan tüm soruların rastgele seçilme şansına sahip olması gerektiğini söyledi.
seshoumara

@seshoumara şimdi düzeltilmelidir.
Tom

API sürümünü URL'den bırakarak 4 bayt kaydedin.
Shaggy


Bunun da ipuçları zorlukları oluşturduğunu doğrulayabilir ...
FlipTack

2

Piton 3, 452 339 bayt

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

Biraz çirkin ve çok golf-y, ama bunu yapmak için daha iyi bir yol bulamadım. Bu az ya da çok kaba API'yı zorladığı için kotanızı oldukça hızlı harcayacak ve hata almaya başlayacaksınız, ancak birkaç saat sonra tekrar çalışacak.

EDIT: NoOneIsHere sayesinde gereksiz gereksiz şeyleri kaldırarak 113 bayt kurtardı.


Sadece bir lkez kullanıyorsunuz, bu yüzden gereksiz.
NoOneIsHere

Bu doğru. Bunu, daha sonra geçerliyse bağlantıyı yazdırabilirim, ancak normal yerine API bağlantısını yazdırdı. Bana hatırlattığın için teşekkürler.
LyricLy

Ayrıca, çevrimiçi olabilir tryve belki except.
NoOneIsHere

Bu da doğru. Tekrar teşekkürler.
LyricLy

Yardımcı olduğuma sevindim. Pad
NoOneIsHere

1

SEDE SQL: 79 bayt

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

2 yakalama vardır. Bir kez tekrar çalıştırmadan önce bir süre beklemek zorunda ya da bir önbellek isabet var (bir mod bana söyledi) ve sadece soru kimlik numarasını almak.


Geçerli olduğunu düşünüyorum çünkü yazamıyorum bile tembel değilim
Matthew Roh

Evet!
Christopher
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.