void Escapist::makeStep(Field *mainField, Mouse *virtualMouse) { if (!getEndOfGame()) { findBorder(mainField, mainField->getField(), _currPosX, _currPosY); currentWave = waves[waves.size() - 1];//get destination border for (unsigned int i = 0; i < currentWave.size(); ++i) { if (currentWave[i].line == 0 || currentWave[i].col == 0 || currentWave[i].line == 8 || currentWave[i].col == 8) { destination.line = currentWave[i].line; destination.col = currentWave[i].col; break; } } paveTheWay(); changeCoodrinates(mainField); //#pragma region log // for (unsigned int i = 0; i < waves.size(); ++i) // { // currentWave = waves[i]; // for (unsigned int j = 0; j < currentWave.size(); ++j) // { // std::cout << currentWave[j].line << ' ' << currentWave[j].col << "; "; // } // std::cout << '\n'; // } // // std::cout << "destination border: "; // std::cout << destination.line << ' ' << destination.col << '\n'; // // std::cout << "\nPath: "; // for (unsigned int i = 0; i < path.size(); ++i) // { // std::cout << path[i].line << ' ' << path[i].col << "; "; // } //#pragma endregion currentWave.clear(); nextWave.clear(); waves.clear(); path.clear(); } mainField->setHit(false); }
vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) { // Start typing your C/C++ solution below // DO NOT write int main() function bool lFlag, rFlag; int lBorder = findBorder(intervals, lFlag, newInterval.start); int rBorder = findBorder(intervals, rFlag, newInterval.end); if (lFlag && rFlag) { intervals[rBorder].start = intervals[lBorder].start; intervals.erase(intervals.begin()+lBorder, intervals.begin()+rBorder); } else if (!lFlag && rFlag) { intervals[rBorder].start = newInterval.start; intervals.erase(intervals.begin()+lBorder, intervals.begin()+rBorder); } else if (lFlag && !rFlag) { intervals[lBorder].end = newInterval.end; intervals.erase(intervals.begin()+lBorder+1, intervals.begin()+rBorder); } else { intervals.erase(intervals.begin()+lBorder, intervals.begin()+rBorder); intervals.insert(intervals.begin()+lBorder, newInterval); } return intervals; }