I developed a maze game in Solidity with a treasure at a location in the game. Players send transactions to move. The first to find the treasure wins some ether.
Is there no solution to the problem that the treasure position will be visible to anybody who looks into the transactions input data? I know how to hide information submitted by players, like in a rock-paper-scissors game, by hashing the answers and providing the key when the game is finished. But I think that doesn't work here, as the information to hide is needed by the contract to check if a player is at the treasure's position and trigger the reward. Is there any way (even complex) to workaround this somehow, or is this game just not meant to be on the blockchain?
Also, will the integration of zk-snarks change anything to this problem?
In case that helps, here is the code: https://github.com/jquentin/EtherMaze/blob/master/EtherMaze - Payable.sol