void Labyrinth::openDoor(const QPoint& out, const QPoint& in) { auto isOutside([this](const QPoint& p)->bool{ return p.x() >= __size.width() || p.x() < 0 || p.y() >= __size.height() || p.y() < 0; }); if (isOutside(in)) { __data.addEdge(toId(out), __data.size() - 1); } else if(isOutside(out)) { __data.addEdge(__data.size() - 1, toId(in)); }else { __data.addEdge(toId(out), toId(in)); } }
/** * @brief QBsonValue::toString return the value as string. If QBsonValue is * invalid or could not convert to String then an empty QString is returned. * @see QVariant::toString() * @return QString */ QString QBsonValue::toString() const { if (isValid()) { switch(data->type) { case QBsonValue::Id: return toId().toString(); default: { if (data->v.canConvert(QVariant::String)) { return data->v.toString(); } } } } return QString(); }
template<class T> deque<T> Tree<T>::travelDfs(){ deque<T> retv; retv.push_back(*node); cout << toId() << ","; if(isLeaf()){ }else{ for(int i=0;i<m_childs->size();i++){ Tree& ti = (*m_childs)[i]; deque<T> temp = ti.travelDfs(); retv.insert(retv.end(),temp.begin(),temp.end()); } } return retv; }
void Labyrinth::closeDoor(const QPoint& out, const QPoint& in) { __data.rendEdge(toId(out), toId(in)); }