63 belofte::stringList sFenSgmt = belofte::stringSplit(s,
" ");
64 if (sFenSgmt.size() >= 4) {
66 belofte::stringList sPerftCommaElem = belofte::stringSplit(sFenSgmt[3],
",");
67 if (sPerftCommaElem.size() > 1) {
68 sFenSgmt[3] = sPerftCommaElem[0];
71 m_Fen = sFenSgmt[0] +
" " + sFenSgmt[1] +
" "
72 + sFenSgmt[2] +
" " + sFenSgmt[3];
73 sFenSgmt.erase(sFenSgmt.begin(), sFenSgmt.begin() + 4);
76 if (belofte::is_number(sFenSgmt[0])) {
77 m_Fen +=
" " + sFenSgmt[0];
78 sFenSgmt.erase(sFenSgmt.begin());
84 if (belofte::is_number(sFenSgmt[0])) {
85 m_Fen +=
" " + sFenSgmt[0];
86 sFenSgmt.erase(sFenSgmt.begin());
92 if (sPerftCommaElem.size() > 1) {
94 std::stringstream sPerftSection;
95 for (
unsigned long i = 1; (i <
EPD_PERFTMAXDEPTH) && (sPerftCommaElem.size() > i); ++i) {
96 sPerftSection <<
"D" << belofte::to_string(
static_cast<int32_t
>(i)) <<
" "
97 << sPerftCommaElem[i] <<
";";
99 sFenSgmt.push_back(sPerftSection.str());
103 std::string sCmd =
";" + std::accumulate(sFenSgmt.begin(), sFenSgmt.end(), std::string(),
104 [](std::string result, std::string sElem) {
105 return std::move(result) + std::move(sElem) +
" ";
107 belofte::stringList sCmdSgmt = belofte::stringSplit(sCmd,
";");
110 for (
auto it = sCmdSgmt.begin(); it != sCmdSgmt.end(); ++it) {
111 *it = belofte::alltrim(*it);
117 for (
const auto &sElem : sCmdSgmt) {
118 if (sElem.length() > 0) {
120 if (sElem.substr(0,3) ==
"id=") {
123 std::pair<std::string, std::string> sCmdOpcode = belofte::decompose(sElem,
"=");
124 m_Keys[sCmdOpcode.first] = belofte::alltrim(sCmdOpcode.second,
"\"");
128 std::pair<std::string, std::string> sCmdOpcode = belofte::decompose(sElem,
" ");
129 m_Keys[sCmdOpcode.first] = belofte::alltrim(sCmdOpcode.second,
"\"");