下面为猜数字合约 功能为,用户调用合约的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; } }