Розробка гри Coinflip на блокчейні
Coinflip — найпростіша ставочна механіка: вгадати орла або решку. 50/50 шанс, виграш трохи менше 2x (house edge ~2%). Реалізація на блокчейні займає кілька днів, але вимагає правильного verifiable randomness.
Smart contract
contract BlockchainCoinflip is VRFConsumerBaseV2Plus {
uint256 public houseEdge = 200; // 2%
struct Flip {
address player;
uint256 amount;
bool guessHeads;
}
mapping(uint256 => Flip) public flips;
function flip(bool guessHeads) external payable returns (uint256 requestId) {
require(msg.value >= 0.001 ether && msg.value <= getMaxBet());
requestId = _requestVRF();
flips[requestId] = Flip(msg.sender, msg.value, guessHeads);
}
function fulfillRandomWords(uint256 requestId, uint256[] calldata randomWords)
internal override
{
Flip memory f = flips[requestId];
delete flips[requestId];
bool isHeads = randomWords[0] % 2 == 0;
bool win = isHeads == f.guessHeads;
if (win) {
uint256 payout = f.amount * (10000 - houseEdge) / 5000;
payable(f.player).transfer(payout);
}
}
function getMaxBet() public view returns (uint256) {
return address(this).balance / 100;
}
}
PvP Варіант
Гравець проти гравця: перший гравець створює challenge з ставкою, другий приймає, VRF визначає winner, winner отримує обидві ставки мінус комісія. Усуває вимогу house bankroll — казино заробляє тільки комісію.
Розробка: coinflip контракт + frontend — 1-2 тижні. PvP варіант добавляє тиждень для challenge/accept механіки.







