下面爲猜數字合約
功能爲,用戶調用合約的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;
}
}