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