this level is not impossible to brute force since it has 2^256 probabilities.
However, in both the Solidity compiler version 0.4.21 (for block.blockhash()) and ^0.8.0 (for blockhash()), the function to obtain the block hash from a block number only returns the hash for the 256 most recent blocks, excluding current.
The block hashes are not available for all blocks for scalability reasons. You can only access the hashes of the most recent 256 blocks, all other values will be zero.
This means that after 256 + 1 blocks of locking our guess our “random” answer will be 0.
solution
lock the number: Call lockInGuess with 0x0000000000000000000000000000000000000000000000000000000000000000