#include #include using namespace std; #include #include "util.h" vector tokenize(const string & str, const string & delimiters) { vector tokens; string::size_type lastPos = str.find_first_not_of(delimiters, 0); string::size_type pos = str.find_first_of(delimiters, lastPos); while (string::npos != pos || string::npos != lastPos) { tokens.push_back(str.substr(lastPos, pos - lastPos)); lastPos = str.find_first_not_of(delimiters, pos); pos = str.find_first_of(delimiters, lastPos); } return tokens; } bool parse_n_load(const string & input, string & name, string & type, int & max_hp, int & strength, int & speed, int & magic) { vector tokens = tokenize(input); vector tokens2 = tokenize(input, "."); if (tokens.size() != 6 or tokens2.size() > 1) { return false; } name = tokens[0]; string parsed_type = tokens[1]; if(parsed_type.size() != 1) { return false; } if (not ( parsed_type == "A" or parsed_type == "C" or parsed_type == "R")) { return false; } type = parsed_type; int parsed_max_hp = atoi(tokens[2].c_str()); int parsed_strength = atoi(tokens[3].c_str()); int parsed_speed = atoi(tokens[4].c_str()); int parsed_magic = atoi(tokens[5].c_str()); if (parsed_max_hp == 0 or parsed_strength == 0 or parsed_speed == 0 or parsed_magic == 0) { return false; } max_hp = parsed_max_hp; strength = parsed_strength; speed = parsed_speed; magic = parsed_magic; return true; }