#include <iostream>
#include <map>
using namespace std;
void sendIntOnWire(string fld, int val) {
cout << "Send "<<fld<<" with value "<<val<<" on the net"<<endl;
}
// General idea: access fields via maps
class GameCharacter {
map<string, int> myints;
// same for doubles, floats, strings
public:
GameCharacter() {
myints["HP"]=100;
myints["FP"]=50;
}
int getInt(string fld) { return myints[fld]; };
void setInt(string fld, int val) { myints[fld]=val; sendIntOnWire(fld,val); }
};
int main() {
GameCharacter c;
c.setInt("HP", c.getInt("HP") - 10);
c.setInt("FP", c.getInt("FP") + 100);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnZvaWQgc2VuZEludE9uV2lyZShzdHJpbmcgZmxkLCBpbnQgdmFsKSB7Cgljb3V0IDw8ICJTZW5kICI8PGZsZDw8IiB3aXRoIHZhbHVlICI8PHZhbDw8IiBvbiB0aGUgbmV0Ijw8ZW5kbDsgCn0KCi8vIEdlbmVyYWwgaWRlYTogIGFjY2VzcyBmaWVsZHMgdmlhIG1hcHMKCmNsYXNzIEdhbWVDaGFyYWN0ZXIgewogICAgbWFwPHN0cmluZywgaW50PiBteWludHM7IAogICAgLy8gc2FtZSBmb3IgZG91YmxlcywgZmxvYXRzLCBzdHJpbmdzCnB1YmxpYzogCiAgICBHYW1lQ2hhcmFjdGVyKCkgewogICAgCW15aW50c1siSFAiXT0xMDA7IAogICAgCW15aW50c1siRlAiXT01MDsgIAogICAgfQogICAgaW50IGdldEludChzdHJpbmcgZmxkKSB7IHJldHVybiBteWludHNbZmxkXTsgfTsgCiAgICB2b2lkIHNldEludChzdHJpbmcgZmxkLCBpbnQgdmFsKSB7IG15aW50c1tmbGRdPXZhbDsgc2VuZEludE9uV2lyZShmbGQsdmFsKTsgfQp9OwoKaW50IG1haW4oKSB7CglHYW1lQ2hhcmFjdGVyIGM7IAoJYy5zZXRJbnQoIkhQIiwgYy5nZXRJbnQoIkhQIikgLSAxMCk7IAoJYy5zZXRJbnQoIkZQIiwgYy5nZXRJbnQoIkZQIikgKyAxMDApOyAKCQoJcmV0dXJuIDA7Cn0=