Sarankan saya tantangan!


14

Saya terlalu bosan dan ingin tantangan untuk dipecahkan. Tetapi saya tidak melihat tantangan yang menarik, dan saya terlalu malas untuk mencari satu. Bisakah Anda (Yah, secara teknis kode Anda) menyarankan saya satu?


I / O

Input: Tidak Ada.

Output: Tautan ke tantangan acak terbuka (yaitu tidak tertutup) ("Tantangan" tidak termasuk !) Di PPCG. Anda tidak boleh menautkan ke jawaban dalam tantangan, Hanya tantangan. (Saya tidak meminta jawaban yang menarik!)


Contohnya

Sah:

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

Tidak valid:

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)

Bisakah kita menampilkan http://codegolf.stackexchange.com/questions/93288/bukan http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake(perhatikan kurangnya nama tantangan).
Kritixi Lithos

@Kritixi Lithos Tentu, itu berhasil.
Matius Roh

Tidak semua kiat pertanyaan memiliki kata "kiat" dalam nama mereka. Lihat yang ini misalnya. Apakah itu diizinkan atau maksud Anda untuk menghapus tantangan di tag "tips"?
seshoumara

@seshoumara Yang terakhir, itu juga alasan saya mengetik 'tips' sebagai tag.
Matius Roh

Ada sekitar 6k pertanyaan yang memenuhi kriteria Anda di PPCG. Apakah semua perlu memiliki kesempatan untuk dipilih secara acak, atau bisakah saya memilih secara acak dari 50 hasil pertama yang saya dapatkan dari tautan pencarian?
seshoumara

Jawaban:


4

JavaScript (ES6), 209 byte

Berhasil, tetapi kemungkinan besar akan mencapai batas StackExchange API dengan sangat cepat. Mungkin perlu beberapa saat untuk menampilkan tautan, karena memeriksa secara acak untuk pertanyaan yang valid.

_=>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 mengatakan bahwa semua pertanyaan yang sesuai dengan persyaratan harus memiliki kesempatan untuk dipilih secara acak.
seshoumara

@seshoumara harus diperbaiki sekarang.
Tom

Simpan 4 byte dengan menjatuhkan versi API dari URL.
Shaggy


Dapat mengonfirmasi bahwa ini menghasilkan tip juga ...
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

Sedikit tidak enak dipandang dan tidak terlalu golf-y, tapi saya tidak tahu cara yang lebih baik untuk melakukannya. Karena ini kurang lebih memaksa API, Anda akan menghabiskan kuota Anda dengan cepat dan mulai mendapatkan kesalahan, tetapi setelah beberapa jam itu akan bekerja lagi.

EDIT: Disimpan 113 byte dengan menghapus beberapa hal yang tidak perlu, terima kasih kepada NoOneIsHere.


Anda hanya menggunakan lsekali, jadi itu tidak perlu.
NoOneIsHere

Itu benar. Saya melakukan itu sehingga saya bisa mencetak tautan setelahnya apakah itu valid, tetapi yang mencetak tautan API bukan yang normal. Terima kasih sudah mengingatkan saya.
LyricLy

Anda juga dapat online trydan mungkin except.
NoOneIsHere

Itu juga benar. Terima kasih lagi.
LyricLy

Senang untuk membantu. Pad
NoOneIsHere

1

SEDE SQL: 79 byte

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

Ada 2 tangkapan. Satu Anda harus menunggu beberapa saat sebelum menjalankan lagi atau Anda memiliki hit cache (sebagai mod mengatakan kepada saya) dan Anda hanya mendapatkan nomor id pertanyaan.


Saya pikir ini valid karena saya tidak malas untuk tidak bisa mengetik
Matius Roh

Iya! Kata-kata Anda terletak pada tantangan Anda
Christopher
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.