本文整理汇总了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);
}
}
}