本文整理汇总了C++中world::getWormMap方法的典型用法代码示例。如果您正苦于以下问题:C++ world::getWormMap方法的具体用法?C++ world::getWormMap怎么用?C++ world::getWormMap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类world
的用法示例。
在下文中一共展示了world::getWormMap方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getWorldPartSize
/**************************************************************************************************
* getLength
* ***********************************************************************************************/
uint getWorldPartSize(const world& w, visitedMap& map, const WormPart& p){
NeighborContainer mustVisited;
mustVisited.push_back(p);
uint result(0);
while(!mustVisited.empty()){
WormPart cur = mustVisited[mustVisited.size()-1];
mustVisited.pop_back();
if((w.getWormMap().getTheHomeFor(cur.getX(), cur.getY()) != 1) && (!map[cur.getX()][cur.getY()])){
result++;
map[cur.getX()][cur.getY()] = true;
NeighborContainer* buffer = w.getNeighborFields(cur);
for(auto p: *buffer){
mustVisited.push_back(p);
}
}
}
return result;
}
示例2: createVisitedMap
/**
* @brief createVisitedMap
* @param w: The Current World: needed for size and blocked fields
* @param map: The Result Map
* @param worms: Worms that block fields
*/
void createVisitedMap(const world& w, visitedMap& map, const WormContainer& worms){
map.clear();
for(uint x=0; x<w.getSizeX(); ++x){
visitedMapInnerContainer innerContainer;
for(uint y=0; y<w.getSizeY(); ++y){
if(w.getWormMap().getTheHomeFor(x,y) == 1){
innerContainer.push_back(true);
} else{
bool found(false);
for(const Worm& wurm: worms){
if(wurm.contains(WormPart(x,y))) {
innerContainer.push_back(true);
found = true;
break;
}
}
if(!found)
innerContainer.push_back(false);
}
}
map.push_back(innerContainer);
}
}