Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save nilslindemann/aaba5ced35da7a7816661c48bcf76c77 to your computer and use it in GitHub Desktop.
Save nilslindemann/aaba5ced35da7a7816661c48bcf76c77 to your computer and use it in GitHub Desktop.
Unofficial Lichess Puzzle Storm Top 200 List

Currently Discontinued

In June 22nd, 2021, a programming bug in Lichess' Puzzle Storm and Puzzle Racer games caused some players to achieve excessively high scores that are otherwise beyond their abilities. See e.g. this recording of the bug by Joseph Leung.

The resulting top list is therefore based on corrupted data; compare it with the last correct list and the lists from previous days (see the links "Yesterdays list").

The Lichess developers could have decided to delete all Puzzle scores from June 22nd and to recalculate the data sets based on them. But presumably for performance reasons, they only recalculate these data sets when the player plays a new round. As long as the player does not do so, the wrong score remains. At least this is my assuption based on the data I see. I have not talked to any Lichess dev.

For example the current leader of the wrong list, catask, has the wrong scores from June 22 still in his dashboard (Screenshot) as he has not played any Puzzle Storm runs since then. Other players did and their data got fixed.

Unfortunately that means that the Puzzle Storm data downloaded from the Lichess API is no longer reliable. I could try to fix it myself (based on e.g. https://lichess.org/api#operation/apiStormDashboard), but I don't have the time for that at the moment. So i will stop updating the list. In my opinion, invalid or partially invalid data is less useful than no data at all.

This is the last correct list (Text-only version), in which InvisibleFork holds the world record with a score of 115.

I wish all players fun on Lichess.

@TheYoBots
Copy link

TheYoBots commented Feb 6, 2021

I thought you made some code that would detect the top 200...

Anyways it’s a good enough try from you :)

Just a suggestion, remove the arrow saying ↑ 5 (or whatever number) as in puzzle storm they will only increase and never decrease.

@nilslindemann
Copy link
Author

nilslindemann commented Feb 6, 2021

@TheYoBots

The markdown file gets compiled via Python script. I am planning to transform this to a repo, with an attached GitHub page. Then the script will be online. Could be a first Svelte project, just digging into this framework.

Regarding the arrows, I decided to keep them, to document the purpose of the numbers. I also tested how it looks without, I found it a bit irritating. BTW, the number shows how much the user has risen up in the list, not how much his score has risen.

"A good enough try" that sounds a bit skeptical. What would I have to change to get a "good job"?

@TheYoBots
Copy link

Oh, didn’t mean any offence 😅

Just trying to say that I thought you used a code format to get the top 200 leaderboard in puzzle storm, but this is just an assumption of who might be in the top 200 list that you have received by word (from forums, etc...).

I was just wondering whether it would be possible to get a more accurate list using some actual code and not just md.

Regarding ‘good enough try’, I meant that this would actually be quite close to what it actually is, but not to sure about it being completely accurate.

Sorry if I sounded offensive or anything, just meant to appreciate.

@nilslindemann
Copy link
Author

nilslindemann commented Feb 6, 2021

It is not possible to download players from the Lichess API sorted by Puzzle Storm score. So I do it the following way:

The script downloads all official top 200 lists and merges them together to a set of player names. It adds a small, hand edited set of player names with a score higher than 100. Then it adds a set containing all names from previous versions of this list, cached in a JSON file. The resulting set contains around 1400 names.

Then it downloads the Puzzle Storm data for each name in this big set, does some cleanup, sorts by score, then runs, then alphabet, and creates the markdown file from it, which I upload here.

I can not systematically search for every Lichess user, because the Lichess API is rate limited (3 requests per second was max in my tests, I do 2), and there are millions of Lichess users. So the list is just accurate within the limits described above. Dunno if this is the best way.

@CheeseMuffin
Copy link

Not sure where the right place to mention this is, but I myself (https://lichess.org/@/CheeseMuffin) currently have a 105 score on storm.

@nilslindemann
Copy link
Author

nilslindemann commented Feb 7, 2021

Thank you, @CheeseMuffin, I have added you.

People with a score of 100 or higher can report here or in the related Lichess forum thread, or send me a private message. I will add them on the next script run. You can also contact me via these paths if you do not want to be mentioned in future versions of this list.

@CodingChess
Copy link

Yay I love this great work!

@nilslindemann
Copy link
Author

nilslindemann commented Feb 8, 2021

Thank you @CodingChess ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment