Đề nghị cho tôi một thử thách!


14

Tôi quá chán và muốn một thử thách để giải quyết. Nhưng tôi không thấy bất kỳ thử thách thú vị nào, và tôi quá lười để tìm kiếm nó. Bạn có thể (Vâng, về mặt kỹ thuật mã của bạn) gợi ý cho tôi một cái?


Tôi / O

Đầu vào: Không có.

Đầu ra: Liên kết đến một thử thách mở ngẫu nhiên (tức là không đóng) ("Thử thách" không bao gồm các !) Trên PPCG. Bạn có thể không liên kết đến một câu trả lời trong một thử thách, Chỉ là một thử thách. (Tôi không hỏi câu trả lời thú vị!)


Ví dụ

Có hiệu lực:

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

Không hợp lệ:

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)

Chúng ta có thể xuất http://codegolf.stackexchange.com/questions/93288/thay vì http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake(lưu ý thiếu tên thách thức).
Kritixi Lithos

@Kritixi Lithos Chắc chắn, nó hoạt động.
Matthew Roh

Không phải tất cả các câu hỏi mẹo đều có từ "mẹo" trong tên của họ. Xem cái này chẳng hạn. Điều đó được cho phép hay bạn muốn loại bỏ những thách thức trong thẻ "mẹo"?
seshoumara

@seshoumara Sau này, đó cũng là lý do tôi nhập 'mẹo' làm thẻ.
Matthew Roh

Có khoảng 6k câu hỏi đáp ứng các tiêu chí của bạn trên PPCG. Tất cả có cần phải có cơ hội được chọn ngẫu nhiên hay tôi có thể chọn ngẫu nhiên từ 50 kết quả đầu tiên tôi nhận được từ một liên kết tìm kiếm?
seshoumara

Câu trả lời:


4

JavaScript (ES6), 209 byte

Không hoạt động, nhưng rất có thể sẽ đạt giới hạn API StackExchange rất nhanh. Có thể sẽ mất một lúc để xuất liên kết vì nó kiểm tra ngẫu nhiên một câu hỏi hợp lệ.

_=>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 nói rằng tất cả các câu hỏi phù hợp với yêu cầu cần phải có cơ hội được chọn ngẫu nhiên.
seshoumara

@seshoumara nên được sửa ngay bây giờ.
Tom

Lưu 4 byte bằng cách thả phiên bản API từ URL.
Shaggy


Có thể xác nhận rằng điều này cũng tạo ra các thách thức về mẹo ...
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

Một chút khó coi và không phải là golf-y, nhưng tôi không thể tìm ra một cách tốt hơn để làm điều đó. Vì API này ít nhiều buộc phải sử dụng API, bạn sẽ sử dụng hết hạn ngạch của mình khá nhanh và bắt đầu gặp lỗi, nhưng sau vài giờ, nó sẽ hoạt động trở lại.

EDIT: Đã lưu 113 byte bằng cách loại bỏ nhiều thứ không cần thiết, nhờ NoOneIsHere.


Bạn chỉ sử dụng lmột lần, vì vậy nó là không cần thiết.
NoOneIsHãy

Đúng rồi. Tôi đã làm điều đó để tôi có thể in liên kết sau đó nếu nó hợp lệ, nhưng nó đã in liên kết API thay vì liên kết thông thường. Cảm ơn vì đã nhắc tôi.
LyricLy

Ngoài ra, bạn có thể trực tuyến tryvà có thể except.
NoOneIsHãy

Điều đó cũng đúng. Cảm ơn một lần nữa.
LyricLy

Vui mừng được giúp đỡ. Pad
NoOneIsHãy

1

SEDE SQL: 79 byte

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

Có 2 lần bắt. Một bạn phải đợi một lúc trước khi chạy lại hoặc bạn có một lần nhấn bộ đệm (như một mod đã nói với tôi) và bạn chỉ nhận được số id câu hỏi.


Tôi nghĩ nó hợp lệ bởi vì tôi không lười biếng đến mức không thể gõ
Matthew Roh

Đúng! Lời của bạn nằm trong thử thách của bạn
Christopher
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.