建议我挑战!


14

我很无聊,想要解决一个挑战。但是我看不到任何有趣的挑战,而且我懒得寻找。您能(从技术上来说是您的代码)建议我一个吗?


输入输出

输入:无。

输出: PPCG上随机打开(即非关闭)挑战(“挑战”不包括!)的链接。您可能不会链接到挑战中的答案,而只是挑战。(我没有要求一个有趣的答案!)


例子

有效:

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

无效:

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/而不是http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake(注意缺少质询名称)吗?
user41805 '17

@Kritixi Lithos当然可以。
马修·鲁

并非所有提示问题的名称中都带有“提示”一词。例如,请参阅示例。是允许这样做还是您要消除“提示”标签中的挑战?
seshoumara

@seshoumara后者,这也是我键入“ tips”作为标签的原因。
马修·罗

大约有6k个问题可以满足您关于PPCG的标准。是否所有人都有机会被随机挑选,还是可以从搜索链接中获得的前50个结果中随机挑选?
seshoumara

Answers:


4

JavaScript(ES6),209个字节

确实可行,但很可能很快达到StackExchange API限制。输出链接可能需要一段时间,因为它会随机检查有效问题。

_=>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表示,所有符合要求的问题都需要随机选择。
seshoumara

@seshoumara应该现在固定。
汤姆(Tom)

通过从URL删除API版本来节省4个字节。
毛茸茸的


可以确认这也给技巧带来了挑战……
FlipTack

2

Python 3中,452个 339字节

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

有点难看,不是很高尔夫,但是我想不出更好的方法。由于此API或多或少地受到了蛮力攻击,因此您会很快用完配额并开始出现错误,但是几个小时后它将再次起作用。

编辑:通过删除多个不必要的东西,节省了113个字节,这要归功于NoOneIsHere。


您只使用l一次,因此没有必要。
NoOneIsHere

没错 我这样做是为了以后可以打印该链接(如果有效),但是可以打印出API链接,而不是普通的链接。谢谢你的提醒。
LyricLy

此外,您还可以在网上的try,也许是except
NoOneIsHere

这也是正确的。再次感谢。
LyricLy

乐意效劳。Pad
NoOneIsHere

1

SEDE SQL:79个字节

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

有2个渔获。您必须等待一段时间才能再次运行,否则您将遇到缓存命中(如mod告诉我的那样),并且您只会获得问题ID号。


我认为这是有道理的,因为我并不懒惰甚至无法打字
马修·鲁

是! 您的口号取决于您的挑战
Christopher
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.