I have been playing Puzzle Storm on Lichess lately. Essentially it involves solving chess puzzles within a given time limit. Additionally, the player gets a time bonus for a certain number of moves. Chess puzzles are essentially problems where the player needs to find the best move (or sequence of moves) in a given position. I am trying to work out the time period within which I need to make one correct move so that I can go on playing the game infinitely.

Now the exact rules are as follows :

The player gets 3 minutes on the clock. For every wrong move the player loses 10 seconds. For every 5 correct moves, a player gains a 3 second bonus. For every 12 correct movies, the player gains a 5 second bonus. For every 20 correct moves, the player gains 7 seconds. For every 30 correct moves, the player gains 10 seconds. After 30 correct moves, the player gains 10 seconds for every subsequent 10 correct moves.

For simplicity I am assuming the player only makes correct moves. I want to figure out what is the longest time period per move in order to play this game infinitely/ never run out of time.

My attempt at a solution :

I tried to solve a simpler version of the same problem first. I assumed that the player has 3 minutes at the start and gains 10 seconds for every 10 correct moves. I am not too sure if a linear in-equation would be used to model this problem or a linear equation.

If I let $x$ be the time period to make one correct move, then $1/x$ would be the number of correct moves per unit time. Now, if $y$ is the total number of correct moves (which seems paradoxical since I am looking for a way to get infinite moves!) then $x*y$ is total time taken. Now since I get 10 bonus seconds after every 10 correct moves, $10*x$ should be the time taken to get one 10 second bonus. So if I can always have enough time leftover to get a 10 second bonus then I should be able to play without ever running out of time. Hence I think this should work... $$ xy - 180 \ge 10x $$ Plot for this in-equation

I am not sure if this is correct, hence I have not moved on to the real case with the variable bonus times. Although in the event my approach is correct, I am a little unsure about how to create expressions for the bonus times (if adding the initial time bonuses directly to -180 works, then the only change would be to make the equation $xy - 180 + 3 + 5 + 12 + 7 + 10 \ge 10x $)

  • 1
    $\begingroup$ In the limit, the $180$ original seconds tend to be ignorable and thus you should just make $10$ moves in $10$ seconds, or $1$ move per second. Similarly the original bonus rules are ignorable as well. $\endgroup$
    – WhatsUp
    Jul 21, 2021 at 12:28

1 Answer 1


As @WhatsUp mentioned in a comment,

Over an infinite time scale with perfect play, the initial 30 moves are insignificant. This leaves the overwhelming majority of your moves at gaining 10s every 10 moves for a minimum time per move of 1s. Any smaller than 1s over an infinite time scale and you won't be gaining moves fast enough to keep up with your burn rate. Any longer and you're just wasting time.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.