Skip to content

Instantly share code, notes, and snippets.

@IntrepidShape
Created July 13, 2021 15:28
Show Gist options
  • Save IntrepidShape/c3aa8f59ee62247a1c402f6c109f3d2b to your computer and use it in GitHub Desktop.
Save IntrepidShape/c3aa8f59ee62247a1c402f6c109f3d2b to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.4+commit.c7e474f2.js&optimize=false&runs=200&gist=
pragma solidity >=0.7.0 <0.9.0;
contract myGame {
uint public playerCount = 0;
mapping (address => Player) public players;
enum Level {Novice, Intermediate, Advance}
struct Player {
address playerAddress;
Level playerLevel;
string firstName;
string lastName;
uint createdTime;
}
function addPlayer(string memory firstName, string memory lastName) public {
players[msg.sender] = Player(msg.sender, Level.Novice, firstName. lastName, block.timestamp);
playerCount += 1;
}
function getPlayerLevel(address playerAddress) public view returns playerLevel {
Player storage player = players[playerAddress];
return player.playerLevel;
}
//20 seconds after the player is created their level is changed to intermediate
function changePlayerLevel(address playerAddress) public {
Player storage player = players[playerAddress];
if (block.timestamp >= player.createdTime + 20) {
player.playerLevel = player.Intermediate;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment