contract Register { mapping (string => string) names; function register(string name, string value) returns boolean { if (names[name] == 0) { names[name] = value; return true; } return false; } function lookup(string name) returns string { return names[name]; } } contract BadRPS { uint nPlayers; mapping (address => uint) moves; function move(uint move) returns (boolean success) { if (nPlayers < 2 && msg.value >= 10) { nPlayers++; moves[msg.sender] = move; return true; } return false; } } contract RPS { uint nPlayers; mapping (address => uint) moves; function move(uint move) returns (boolean success) { if (nPlayers < 2 && msg.value >= 10) { nPlayers++; moves[msg.sender] = move; return true; } throw; } }