Quest 1

qust-1-1

十六进制字符串

"48 61 76 65 20 79 6f 75 20 73 65 65 6e 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 66 20 74 68 65 20 4a 65 74 42 72 61 69 6e 73 20 77 65 62 73 69 74 65 3f"
    .split(' ')
    .map(ch => String.fromCharCode((parseInt(ch, 16))))
    .join('')
// output: "Have you seen the source code of the JetBrains website?"

查看 JetBrains 官网 源码:

qust-1-2

全文如下:

        <!--
      O
{o)xxx|===============-
      O

Welcome to the JetBrains Quest.

What awaits ahead is a series of challenges. Each one will require a little initiative, a little thinking, and a whole lot of JetBrains to get to the end. Cheating is allowed and in some places encouraged. You have until the 15th of March at 12:00 CET to finish all the quests.
Getting to the end of each quest will earn you a reward.
Let the quest commence!

JetBrains has a lot of products, but there is one that looks like a joke on our Products page, you should start there... (hint: use Chrome Incognito mode)
It’s dangerous to go alone take this key: Good luck! == Jrrg#oxfn$

                 O
-===============|xxx(o}
                 O
-->

根据上面提示使用隐身模式打开 JetBrains 产品页

qust-1-3

进入 JK Read More:

qust-1-4

找到 500 - 5000 之间质数的个数:574

打开 https://jb.gg/574

qust-1-5

打开 youtrackMPS-31816

qust-1-6

根据网页中 Good luck! == Jrrg#oxfn$ 再对照 ASCII 表可知 left + 3 = right

"Qlfh$#Li#|rx#duh#uhdglqj#wklv#|rx#pxvw#kdyh#zrunhg#rxw#krz#wr#ghfu|sw#lw1#Wklv#lv#rxu#lvvxh#wudfnhu#ghvljqhg#iru#djloh#whdpv1#Lw#lv#iuhh#iru#xs#wr#6#xvhuv#lq#Forxg#dqg#iru#43#xvhuv#lq#Vwdqgdorqh/#vr#li#|rx#zdqw#wr#jlyh#lw#d#jr#lq#|rxu#whdp#wkhq#zh#wrwdoo|#uhfrpphqg#lw1#|rx#kdyh#ilqlvkhg#wkh#iluvw#Txhvw/#qrz#lw“v#wlph#wr#uhghhp#|rxu#iluvw#sul}h1#Wkh#frgh#iru#wkh#iluvw#txhvw#lv#‟EhfdxvhFrgh†1#Jr#wr#wkh#Txhvw#Sdjh#dqg#xvh#wkh#frgh#wr#fodlp#|rxu#sul}h1#kwwsv=22zzz1mhweudlqv1frp2surpr2txhvw2"
    .split('')
    .map(s => s.codePointAt(0) - 3)
    .map(i => String.fromCharCode(i))
    .join('')
// output: Nice! If you are reading this you must have worked out how to decrypt it. This is our issue
// tracker designed for agile teams. It is free for up to 3 users in Cloud and for 10 users in Standalone, 
// so if you want to give it a go in your team then we totally recommend it. you have finished the first Quest, 
// now it’s time to redeem your first prize. The code for the first quest is “BecauseCode”. 
// Go to the Quest Page and use the code to claim your prize. https://www.jetbrains.com/promo/quest/

获得 3 个月免费全产品线产品。


Quest 2

qust-2-1

反转字符串:

new StringBuilder(".spleh A+lrtC/dmC .thgis fo tuo si ti semitemos ,etihw si txet nehw sa drah kooL .tseretni wohs dluohs uoy ecalp a si ,dessecorp si xat hctuD erehw esac ehT .sedih tseuq fo txen eht erehw si ,deificeps era segaugnal cificeps-niamod tcudorp ehT")
    .reverse()
    .toString();
// output: The product domain-specific languages are specified, is where the next of quest hides. 
// The case where Dutch tax is processed, is a place you should show interest. 
// Look hard as when text is white, sometimes it is out of sight. Cmd/Ctrl+A helps."

MPS 是其领域语言产品。到其 Dutch Taxctrl + A:

qust-2-2

得到:

This is our 20th year as a company,
we have shared numbers in our JetBrains
Annual report, sharing the section with
18,650 numbers will progress your quest.

打开其 2019 年度报告

qust-2-3

这一节的数字加起来正好是 18650。点击分享:

qust-2-4

打开 目标网址

qust-2-5

可以看出右侧 hiring,跳转 JetBrains 招聘

都填 any,跳转 无畏的应聘者

qust-2-6

跳转到 JetBrains 游戏开发招募

输入 ↑↑↓↓←→←→BA,打砖块即可:

qust-2-7

获得 3 个月免费全产品线产品。


Final Quest

qust-3-1

Base64 解码:

atob("SGF2ZSB5b3Ugc2VlbiB0aGUgcG9zdCBvbiBvdXIgSW5zdGFncmFtIGFjY291bnQ/")
// output: Have you seen the post on our Instagram account?

跳转其 Instagram 找到最近图片:

qust-3-2

跳转网页 Kotlin Playground

qust-3-3

可以看到也是同第一个 quest 一样的题目。TODO() 改为 3。得到结果:

We have been working 22/7 on the video for the first episode of the PhpStorm EAP. 
If we gave you a clue, it would be easy as pi.

Kotlin 确实不错!

跳转到 PHPStorm 2020.1

上面提到了 pi 应该在 3 分 14 秒 附近:

qust-3-4

跳转 JetBrains Quest Quiz

得知奖金是 8折优惠券 后就没继续了。