智能合约:猜数字合约

下面为猜数字合约
功能为,用户调用合约的guess方法,同时向合约转账,如果猜中数字,则返回2倍的转账金额。如果猜不中,则没有任何变化。和现实生活中的彩票有点类似。但是这个是固定的返回比例,可以在此基础上修改,实现更多的功能。
具体代码如下:

pragma solidity ^0.4.0;

/**
* 猜数字合约
* 如果猜中,则返回2倍的资产
*/
contract Honeypot {
    //定义要猜的数字
    uint luckyNum=52;
    uint public last;
    struct Guess{
        address player;
        uint number;
    }
    Guess[] public guessHistory;
    function guess(uint _num) public payable{
        Guess newGuess;
        newGuess.player=msg.sender;
        newGuess.number=_num;
        guessHistory.push(newGuess);
        //如果猜的数字相同
        if(_num==luckyNum){
            //给用户转账,金额为用户发送额*2
            msg.sender.transfer(msg.value*2);
        }
        last=now;
    }
}

你可能感兴趣的:(智能合约)