I made multiple changes to the Invest contract, now called Metronome.
The contract code and the web3 interface are available on https://github.com/proofofidleness/metronome
If you have a testnet node running, you can play the game through the interface on https://proofofidleness.github.io/metronome/
The interface is currently linked with the deployed contract on Ropsten (revival) testnet at 0x9a7e4083b7675376124884e91e63d1d36cbda8ba.
The code is now much simpler, everything now works using the variable "cumulativeRatios".
This is an idea from someone the solidity gitter channel.
* the game has no fees besides gas costs
* you are free to leave the game at any time with your investment (divest)
* invest() and() divest enable you to add money to the contract or withdraw
* you must call the idle() function before timing out (10 minutes for the testnet version, and most likely 14 hours for the final version)
* you can call poke() on someone if they do not idle on time (a poke button will appear on the interface): this takes (at most) 10% of their balance, and other players are then allowed to claim their fair share of this balance.
The player who lost is also automatically credited his share of his own lost 10%. This is done so that the game is completely fair, regardless of whether you invest small or big.
* there is a Claim button that appears if you have pending rewards to claim (claimReward() function)
* IMPORTANT: do not invest or divest if you have pending rewards, as you will lose them, and they will be redistributed to other players
Feel free to put your Ropsten (revival) address if you want some ether for testing
Reddit link: https://www.reddit.com/r/ethereum/comments/674jb6/proof_of_idleness_game_metronome/