#include #include "move.h" Move::Move(const char *str) { if (str[0] >= 'a' && str[0] <= 'h' && str[1] >= '1' && str[1] <= '8' && str[2] >= 'a' && str[2] <= 'h' && str[3] >= '1' && str[3] <= '8' && str[4] == '\0') { from = 8 * ('8' - str[1]) + str[0] - 'a'; to = 8 * ('8' - str[3]) + str[2] - 'a'; castle = 0; } else if (strcmp(str, "O-O") == 0) { castle = 1; } else if (strcmp(str, "O-O-O") == 0) { castle = -1; } else { throw std::runtime_error("Invalid Move string"); } }