0xfce18c40…18dfsent to0x38b394cd…db66·#5,034,427·view on Etherscan
Create an abstract version of billiards as a dapp (web3py or web3js)Here are the basic rules:
The table has some number of pockets, and there is a set of billiards that have initial positions. The placement of pockets and initial billiards' positions don't need to be anything we're used to.
There is some number of players (you decide) who rotate through turns. Each can impact one billiard ball with some vector. (If the resulting collision is too complex, the dapp will run out of gas and abort. That's fine, and will serve as a natural limit to how strongly a ball can be hit.)
The billiards balls act as points (0 width). When colliding with walls or testing for hole collision this is simple. For collision detection between billiard balls, you may either simply assume some nonzero width, or think up something more creative (for example, the closer a two billiards get, the greater the probability of a collision, using the blockheader to as a source of randomness to resolve this probability into hit / not hit)
Game input can be command-based or gui, whichever makes most sense. Rules on scoring and endgame can either be traditional or something new. The user should be able to see the current board state and info such as whose turn it is, but animating the intermediate effects of a move (billiards balls moving around and colliding) is not necessary.
All code must be clear, clean, and easy to modify and upgrade. The worker must be reasonably aware of current security challenges (i.e. re-entrancy exploits) and best practices. (mining advantages can be ignored, however; assume all users have insignificant mining power.) If the contract has a severe vulnerability, a significant portion of the payment will be burned.
All code will be treated as licenseless.
The core contract and a pilot interface must be completed two weeks after commitment. If the dapp is functional, stable and meets the above requirements, I will release the payment within one week after delivery.
I recommend you do some beginning design work on the project before committing, to ensure you have a good idea of its scope.