-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNumberGame.sol
45 lines (42 loc) · 1.2 KB
/
NumberGame.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract NumberGuessingGame{
address public manager;
uint256 private correctNumber;
uint256 private equalNum;
string public name = "David";
bool public setNum = false;
mapping(address => bool) paid;
address [] public players;
constructor() {
manager = msg.sender;
}
//To enter Pay
function enter() public payable {
require(msg.value > .01 ether);
paid[msg.sender] = true;
players.push(msg.sender);
}
modifier onlyOwner{
require(msg.sender == manager);
_;
}
//Set The Number
function setNumber(uint256 num) public onlyOwner {
correctNumber = num;
equalNum = num;
}
//Guess The number
function guessNumber(uint256 guessNum) public {
//User must pay before guessing
require(paid[msg.sender]);
require(guessNum == correctNumber);
payable(msg.sender).transfer(address(this).balance);
//Reset The Game
players = new address[](0);
}
//Get All
function getAllPlayers() public view returns (address [] memory){
return players;
}
}