Skip to content

BLD Helper

Chen Shuang edited this page Mar 28, 2023 · 6 revisions

Introduction

This is a tool developed for blindfold solvers, and currently there are two main functions

  1. Scramble to states that meet specific conditions
  2. Show encoding

Scramble

If you want to do exercises for specific states, this tool can help you generate such scrambles. The currently supported filter items and usage are described below.

  1. Parity To the left of "Corner" there is an option to select the parity of the permutation (we know that the parity of edges and that of corners are always the same)
  2. Buffer block In the "buffer" line, you can select the buffer block, and you can also select the state of the buffer block. "any" means any states, "ok" means solved, "flip" means flipped in place, "move" means in a loop, "not ok" means not solved.
  3. Fixed the state of some blocks In the "fixed" line, you can specify the state of certain blocks (solved or in-place flip). The name of the block is directly filled in here, indicating that the state of the block is solved. If you add "+" to the name, it means that the state of the block is flipped in place. For example, "ULB UFR DBL+" means that the "ULB" and "UFR" blocks are solved, and the DBL is flipped in place. It is important to note that this option has no effect on the buffer block. In addition, the name of the block must be consistent with the options of the buffer block, otherwise it will not be recognized.
  4. The number of in-place flip blocks In the "flip" line, you can specify the range of the number of in-place flip blocks. Blocks flipped in place here do not include buffer blocks.
  5. The number of external cycles In the "ex-cyc" line, you can specify the range of the number of external cycles. The external cycles here means the number of all cycles that do not contain the buffer block. In particular, flipping in place is not considered a cycle.
  6. Encoding length In the "#codes" line, you can specify the range of the length of encoding. Here the encoding length only includes encoding all cycles, excluding all in-place flipped blocks.
  7. Displays the probability of a state that meets the filter conditions In the "probs" line, you can check the probability of such a state after filling in the filter conditions. If this probability is particularly small (< 1e-8), the number of states that meet the condition will be directly displayed.

When you're done filtering, change the scramble type to "3x3x3 => BLD Helper". If you modify the filter conditions, you need to manually click "Next Scramble" to generate a scramble that meets the conditions.

Encoding

This part calculates the complete blindfold encoding (including in-place flip blocks and small loops) based on the specified buffer block. The coding here is not necessarily reasonable (especially the handling of in-place flip blocks) is for informational purposes only. You can set up your encoding table in Scheme, just enter the encoding of each surface in the order of UFR UFL UBL UBR DFR DFL DBL DBR UR UF UL UB DR DF DL DB FR FL BL BR.

介绍

这是为盲拧玩家专门开发的小工具,目前主要有两个功能

  1. 打乱出满足特定条件的状态
  2. 显示编码

打乱功能

如果你想针对特定的状态进行突击练习,这个工具可以帮你生成这样的状态。目前可以支持的筛选项及用法说明如下。

  1. 奇偶性 在“Corner”的左边有一个选项,可以选择置换的奇偶性(我们知道棱块和角块的奇偶性永远是一样的)
  2. 缓冲块 在“buffer”行,你可以选择缓冲块,同时也可以选择缓冲块的状态。“any”表示任意,“ok”表示以还原,“flip”表示原地翻转,“move”表示在某个循环里,“not ok”表示未还原.
  3. 固定一些块的状态 在“fixed”行,你可以指定某一些块的状态(还原或原地翻转)。这里直接填块的名称,表示这个块的状态是以还原。如果在名称后加上“+”,表示这个块的状态是原地翻转。例如“ULB UFR DBL+”表示ULB和UFR两个块是还原的,DBL原地翻转。需要特别注意,这个选项对缓冲块无效。另外块的名称必须与缓冲块的选项们一致,否则会无法识别。
  4. 原地翻转块的数量 在“flip”行,你可以指定原地翻转块的数量范围。这里原地翻转的块不包括缓冲块。
  5. 小循环数量 在“ex-cyc”行,你可以指定小循环的数量范围。这里小循环的意思是,所有不包含缓冲块的循环的数量。特别的,原地翻转不认为是循环。
  6. 编码长度 在“#codes”行,你可以指定编码长度的数量范围。这里编码长度只包括编码所有循环,不包括所有原地翻转的块。
  7. 显示满足筛选条件的状态概率 在“probs”行,你可以查看填写了筛选条件后这样的状态出现的概率。如果这个概率特别小(<1e-8),会直接显示满足条件的状态数。

完成筛选以后,请在将打乱类型改成“3x3x3 => 盲拧助手”。如果修改了过滤条件,需要手动点击“下一个打乱”生成满足条件的打乱。

编码功能

这一部分可以根据指定的缓冲块计算完整的盲拧编码(包括原地翻转块和小循环)。这里的编码不一定合理(特别是对原地翻转块的处理)仅供参考。你可以在Scheme里设置你的编码表,只需要按照UFR UFL UBL UBR DFR DFL DBL DBR UR UF UL UB DR DF DL DB FR FL BL BR的顺序输入每一个面的编码就可以。