function play(uint256 betPerRoll, uint16 rolls, uint8 rollUnder) public payable {

		
		uint256 minBetPerTx = MINBET_perTX;

		require(!GAMEPAUSED
				&& betPerRoll * rolls >= minBetPerTx
				&& msg.value >= minBetPerTx
				&& betPerRoll >= MINBET_perROLL
				&& rolls > 0
				&& rolls <= 1024
				&& betPerRoll <= msg.value
				&& rollUnder > 1
				&& rollUnder < 98
				
				&& (SafeMath.mul(betPerRoll, 100) / (rollUnder - 1)) <= getMaxWin());

		
		

		uint256 gasToSend = INITIALGASFORORACLIZE + (uint256(1005) * rolls);

		EOSBetBankrollInterface(BANKROLLER).payOraclize(oraclize_getPrice('random', gasToSend));

		
		bytes32 oraclizeQueryId = oraclize_newRandomDSQuery(0, 30, gasToSend);

		diceData[oraclizeQueryId] = DiceGameData({
			player : msg.sender,
			paidOut : false,
			start : block.timestamp,
			etherReceived : msg.value,
			betPerRoll : betPerRoll,
			rolls : rolls,
			rollUnder : rollUnder
		});

		
		
		LIABILITIES = SafeMath.add(LIABILITIES, msg.value);

		
		emit BuyRolls(oraclizeQueryId);
	}