예제 #1
0
파일: astar.cpp 프로젝트: arochard/N-puzzle
int    astar2(t_astar &var, int index)
{
    if (var.opened_end.find(var.children[index]->getStringedState()) != var.opened_end.end()
        || var.closed_end.find(var.children[index]->getStringedState()) != var.closed_end.end())
    {
        if (var.opened_end.find(var.children[index]->getStringedState()) != var.opened_end.end())
        {
            var.e2 = var.opened_end[var.children[index]->getStringedState()];
        }
        else
        {
            var.e2 = var.closed_end[var.children[index]->getStringedState()];
        }
        var.success = true;
        var.e->printree();
        var.e2->printree_end();
        std::cout<<"complexity_time / "<<all.complexity_time<<std::endl;
        std::cout<<"complexity_size / "<<var.closed.size() + var.closed_end.size()<<std::endl;
        std::cout <<"nb_moves : " << all.nb_moves + 1<<std::endl;
        return 1;
    }
    if (var.closed.find(var.children[index]->getStringedState()) == var.closed.end()
        && var.opened.find(var.children[index]->getStringedState()) == var.opened.end()) {
        setChildValues(var.e, index, 1);
        var.pq.push((var.children[index]));
        var.opened.insert({var.children[index]->getStringedState(), (var.children[index])});
    }
    else {
        delete var.children[index];
        var.e->setChildren(NULL, index);
    }
    return 0;
}
예제 #2
0
파일: astar.cpp 프로젝트: arochard/N-puzzle
void    astar3(t_astar &var, int index)
{
    if (var.opened_end.find(var.children[index]->getStringedState()) == var.opened_end.end() &&
        var.closed_end.find(var.children[index]->getStringedState()) == var.closed_end.end()) {
        setChildValues(var.e, index, 0);
        var.pq_end.push((var.children[index]));
        var.opened_end.insert({var.children[index]->getStringedState(), (var.children[index])});
    }
    else
        delete var.children[index];
}
예제 #3
0
void Variable::handleLookup(const QVariantMap& data)
{
    setChildValues(data["body"].toMap()["value"].toMap()["value"].toMap());
}