当前位置: 首页>>代码示例>>C++>>正文


C++ Cube::corner_cycle_index方法代码示例

本文整理汇总了C++中Cube::corner_cycle_index方法的典型用法代码示例。如果您正苦于以下问题:C++ Cube::corner_cycle_index方法的具体用法?C++ Cube::corner_cycle_index怎么用?C++ Cube::corner_cycle_index使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Cube的用法示例。


在下文中一共展示了Cube::corner_cycle_index方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

void BruteForceFinder::Worker::search_last_corner_cycle(size_t begin, size_t end) {
    const Algorithm skeleton = this->solving_step.back().skeleton;
    static constexpr byte twist_flag = CubeTwist::corners | CubeTwist::reversed;
    const auto& corner_cycle_index = this->finder.corner_cycle_index;

    int index = -1;
    for (size_t insert_place = begin; insert_place <= end; ++insert_place) {
        if (insert_place == begin) {
            Cube state;
            state.twist(skeleton, 0, insert_place, twist_flag);
            state.twist(this->finder.inverse_scramble_cube, twist_flag);
            state.twist(skeleton, insert_place, skeleton.length(), twist_flag);
            index = state.corner_cycle_index();
        } else {
            index = Cube::next_corner_cycle_index(index, skeleton[insert_place - 1]);
        }
        this->try_last_insertion(insert_place, corner_cycle_index[index]);

        if (skeleton.swappable(insert_place)) {
            int swapped_index = Cube::next_corner_cycle_index(
                Cube::next_corner_cycle_index(index, skeleton[insert_place]),
                Algorithm::inverse_twist[skeleton[insert_place - 1]]
            );
            this->try_last_insertion(insert_place, corner_cycle_index[swapped_index], true);
        }
    }
}
开发者ID:xuanyan0x7c7,项目名称:insertionfinder,代码行数:27,代码来源:brute-force-worker.cpp


注:本文中的Cube::corner_cycle_index方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。