@houstonp/rubiks-cube 2.1.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +304 -77
- package/package.json +18 -8
- package/src/{core.js → core/index.js} +72 -41
- package/src/rubiksCube/index.js +3 -0
- package/src/rubiksCube/rubiksCubeController.js +111 -0
- package/src/{three → rubiksCube3D}/centerPiece.js +37 -2
- package/src/{three → rubiksCube3D}/cornerPiece.js +56 -2
- package/src/rubiksCube3D/cubeConfig.js +87 -0
- package/src/rubiksCube3D/cubeSettings.js +30 -0
- package/src/{three → rubiksCube3D}/edgePiece.js +2 -1
- package/src/rubiksCube3D/index.js +3 -0
- package/src/rubiksCube3D/rubiksCube3D.js +383 -0
- package/src/{three → rubiksCube3D}/sticker.js +5 -4
- package/src/state/index.js +4 -0
- package/src/state/rubiksCubeState.js +471 -0
- package/src/state/slice.js +236 -0
- package/src/state/stickerState.js +185 -0
- package/src/{camera → webComponent}/cameraState.js +17 -25
- package/src/webComponent/constants.js +67 -0
- package/src/webComponent/index.js +7 -0
- package/src/webComponent/rubiksCubeElement.js +379 -0
- package/src/{settings.js → webComponent/settings.js} +36 -23
- package/tests/common.js +3 -20
- package/tests/core.test.js +56 -0
- package/tests/rubiksCube.solves.test.js +41 -0
- package/tests/rubiksCube3D.solves.test.js +185 -0
- package/tests/rubiksCubeState.solves.test.js +35 -0
- package/tests/testScrambles.js +194 -0
- package/types/{core.d.ts → core/index.d.ts} +45 -48
- package/types/rubiksCube/index.d.ts +3 -0
- package/types/rubiksCube/rubiksCubeController.d.ts +62 -0
- package/types/rubiksCube3D/centerPiece.d.ts +27 -0
- package/types/rubiksCube3D/cornerPiece.d.ts +38 -0
- package/types/rubiksCube3D/cubeConfig.d.ts +32 -0
- package/types/rubiksCube3D/cubeSettings.d.ts +33 -0
- package/types/{three → rubiksCube3D}/edgePiece.d.ts +5 -3
- package/types/rubiksCube3D/index.d.ts +3 -0
- package/types/rubiksCube3D/rubiksCube3D.d.ts +120 -0
- package/types/rubiksCube3D/sticker.d.ts +18 -0
- package/types/state/index.d.ts +5 -0
- package/types/state/rubiksCubeState.d.ts +108 -0
- package/types/state/slice.d.ts +46 -0
- package/types/state/stickerState.d.ts +34 -0
- package/types/webComponent/cameraState.d.ts +22 -0
- package/types/webComponent/constants.d.ts +57 -0
- package/types/webComponent/index.d.ts +6 -0
- package/types/webComponent/rubiksCubeElement.d.ts +89 -0
- package/types/{settings.d.ts → webComponent/settings.d.ts} +5 -8
- package/src/cube/animationSlice.js +0 -205
- package/src/cube/animationState.js +0 -96
- package/src/cube/cubeSettings.js +0 -19
- package/src/cube/cubeState.js +0 -337
- package/src/cube/stickerState.js +0 -188
- package/src/index.js +0 -621
- package/src/three/cube.js +0 -492
- package/tests/cube.five.test.js +0 -126
- package/tests/cube.four.test.js +0 -126
- package/tests/cube.seven.test.js +0 -126
- package/tests/cube.six.test.js +0 -126
- package/tests/cube.three.test.js +0 -151
- package/tests/cube.two.test.js +0 -125
- package/types/camera/cameraState.d.ts +0 -19
- package/types/cube/animationSlice.d.ts +0 -26
- package/types/cube/animationState.d.ts +0 -41
- package/types/cube/cubeSettings.d.ts +0 -17
- package/types/cube/cubeState.d.ts +0 -47
- package/types/cube/stickerState.d.ts +0 -21
- package/types/index.d.ts +0 -87
- package/types/three/centerPiece.d.ts +0 -15
- package/types/three/cornerPiece.d.ts +0 -24
- package/types/three/cube.d.ts +0 -130
- package/types/three/sticker.d.ts +0 -15
- /package/src/{debouncer.js → webComponent/debouncer.js} +0 -0
- /package/src/{globals.ts → webComponent/globals.ts} +0 -0
- /package/types/{debouncer.d.ts → webComponent/debouncer.d.ts} +0 -0
- /package/types/{globals.d.ts → webComponent/globals.d.ts} +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import './setup.js';
|
|
3
|
+
import { expect, test } from 'bun:test';
|
|
4
|
+
import { CubeTypes, IsRotation, reverse, translate } from '../src/core/index.js';
|
|
5
|
+
import { toKociemba } from '../src/state/stickerState.js';
|
|
6
|
+
import { createTestCube } from './common.js';
|
|
7
|
+
import { scrambles } from './testScrambles.js';
|
|
8
|
+
import { RubiksCubeState } from '../src/state/rubiksCubeState.js';
|
|
9
|
+
import { GetMovementSlice, GetRotationSlice } from '../src/state/slice.js';
|
|
10
|
+
|
|
11
|
+
test.each(scrambles)('$cubeType solve with scramble = $scramble', ({ cubeType, scramble, solution }) => {
|
|
12
|
+
// Arrange
|
|
13
|
+
const cube = createTestCube(cubeType);
|
|
14
|
+
const initialState = toKociemba(cube.getStickerState());
|
|
15
|
+
const scrambleMoves = /** @type {import('../src/core/index.js').Movement[]} */ (scramble.split(' '));
|
|
16
|
+
|
|
17
|
+
for (const move of scrambleMoves) {
|
|
18
|
+
const slice = GetMovementSlice(/** @type {import('../src/core/index.js').Movement} */ (move), cube._cubeConfig.layers.length);
|
|
19
|
+
if (slice) {
|
|
20
|
+
cube.slice(slice);
|
|
21
|
+
} else {
|
|
22
|
+
console.error('Invalid action', move);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const scrambleState = toKociemba(cube.getStickerState());
|
|
26
|
+
|
|
27
|
+
// Act
|
|
28
|
+
const solutionActions = /** @type {(import('../src/core/index.js').Movement | import('../src/core/index.js').Rotation)[]} */ (solution.split(' '));
|
|
29
|
+
for (const action of solutionActions) {
|
|
30
|
+
if (IsRotation(action)) {
|
|
31
|
+
const slice = GetRotationSlice(/** @type {import('../src/core/index.js').Rotation} */ (action), cube._cubeConfig.layers.length);
|
|
32
|
+
if (slice) {
|
|
33
|
+
cube.slice(slice);
|
|
34
|
+
} else {
|
|
35
|
+
console.error('Invalid action', action);
|
|
36
|
+
}
|
|
37
|
+
} else {
|
|
38
|
+
const slice = GetMovementSlice(/** @type {import('../src/core/index.js').Movement} */ (action), cube._cubeConfig.layers.length);
|
|
39
|
+
if (slice) {
|
|
40
|
+
cube.slice(slice);
|
|
41
|
+
} else {
|
|
42
|
+
console.error('Invalid action', action);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const solutionState = toKociemba(cube.getStickerState());
|
|
47
|
+
|
|
48
|
+
// Assert
|
|
49
|
+
expect(scrambleState).not.toBe(initialState);
|
|
50
|
+
expect(solutionState).toBe(initialState);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test.each(scrambles)('$cubeType reset scramble = $scramble', ({ cubeType, scramble, solution }) => {
|
|
54
|
+
// Arrange
|
|
55
|
+
const cube = createTestCube(cubeType);
|
|
56
|
+
const scrambleMoves = /** @type {import('../src/core/index.js').Movement[]} */ (scramble.split(' '));
|
|
57
|
+
const cubeState = new RubiksCubeState(cubeType);
|
|
58
|
+
let initialState = cubeState.getState();
|
|
59
|
+
cubeState.do(scrambleMoves);
|
|
60
|
+
let scrambleState = cubeState.getState();
|
|
61
|
+
|
|
62
|
+
// Act
|
|
63
|
+
cube.setState(scrambleState);
|
|
64
|
+
let scramble3DState = cube.getStickerState();
|
|
65
|
+
cube.reset();
|
|
66
|
+
|
|
67
|
+
// Assert
|
|
68
|
+
expect(toKociemba(scrambleState)).not.toBe(toKociemba(initialState));
|
|
69
|
+
expect(toKociemba(scramble3DState)).toBe(toKociemba(scrambleState));
|
|
70
|
+
expect(toKociemba(cube.getStickerState())).toBe(toKociemba(initialState));
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test.each(scrambles)('$cubeType reverse scramble = $scramble', ({ cubeType, scramble, solution }) => {
|
|
74
|
+
// Arrange
|
|
75
|
+
const cube = createTestCube(cubeType);
|
|
76
|
+
const scrambleActions = /** @type {(import('../src/core/index.js').Movement | import('../src/core/index.js').Rotation)[]} */ (scramble.split(' '));
|
|
77
|
+
const solutionActions = /** @type {(import('../src/core/index.js').Movement | import('../src/core/index.js').Rotation)[]} */ (solution.split(' '));
|
|
78
|
+
const initialState = cube.getStickerState();
|
|
79
|
+
|
|
80
|
+
// Act
|
|
81
|
+
for (const action of scrambleActions) {
|
|
82
|
+
if (IsRotation(action)) {
|
|
83
|
+
const slice = GetRotationSlice(/** @type {import('../src/core/index.js').Rotation} */ (action), cube._cubeConfig.layers.length);
|
|
84
|
+
if (slice) {
|
|
85
|
+
cube.slice(slice);
|
|
86
|
+
} else {
|
|
87
|
+
console.error('Invalid action', action);
|
|
88
|
+
}
|
|
89
|
+
} else {
|
|
90
|
+
const slice = GetMovementSlice(/** @type {import('../src/core/index.js').Movement} */ (action), cube._cubeConfig.layers.length);
|
|
91
|
+
if (slice) {
|
|
92
|
+
cube.slice(slice);
|
|
93
|
+
} else {
|
|
94
|
+
console.error('Invalid action', action);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const scrambleState = cube.getStickerState();
|
|
99
|
+
|
|
100
|
+
// Act
|
|
101
|
+
for (const action of scrambleActions.reverse()) {
|
|
102
|
+
if (IsRotation(action)) {
|
|
103
|
+
const slice = GetRotationSlice(/** @type {import('../src/core/index.js').Rotation} */ (reverse(action)), cube._cubeConfig.layers.length);
|
|
104
|
+
if (slice) {
|
|
105
|
+
cube.slice(slice);
|
|
106
|
+
} else {
|
|
107
|
+
console.error('Invalid action', action);
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
const slice = GetMovementSlice(/** @type {import('../src/core/index.js').Movement} */ (reverse(action)), cube._cubeConfig.layers.length);
|
|
111
|
+
if (slice) {
|
|
112
|
+
cube.slice(slice);
|
|
113
|
+
} else {
|
|
114
|
+
console.error('Invalid action', action);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Assert
|
|
120
|
+
expect(/** @type {string?} **/ (toKociemba(scrambleState))).not.toBe(toKociemba(initialState));
|
|
121
|
+
expect(/** @type {string?} **/ (toKociemba(cube.getStickerState()))).toBe(toKociemba(initialState));
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
const bigCubes = [CubeTypes.Four, CubeTypes.Five, CubeTypes.Six, CubeTypes.Seven];
|
|
125
|
+
const threeSolves = scrambles.filter((x) => x.cubeType === CubeTypes.Three);
|
|
126
|
+
const solves = bigCubes.flatMap((cubeType) =>
|
|
127
|
+
threeSolves.map((solve) => {
|
|
128
|
+
return { ...solve, bigCubeType: cubeType };
|
|
129
|
+
}),
|
|
130
|
+
);
|
|
131
|
+
test.each(solves)('3x3 solve on $bigCubeType with scramble = $scramble', ({ bigCubeType, cubeType, scramble, solution }) => {
|
|
132
|
+
// Arrange
|
|
133
|
+
const cube = createTestCube(bigCubeType);
|
|
134
|
+
const scrambleActions = /** @type {(import('../src/core/index.js').Movement | import('../src/core/index.js').Rotation)[]} */ (scramble.split(' '));
|
|
135
|
+
const solutionActions = /** @type {(import('../src/core/index.js').Movement | import('../src/core/index.js').Rotation)[]} */ (solution.split(' '));
|
|
136
|
+
const initialState = cube.getStickerState();
|
|
137
|
+
|
|
138
|
+
for (const action of scrambleActions) {
|
|
139
|
+
if (IsRotation(action)) {
|
|
140
|
+
const slice = GetRotationSlice(/** @type {import('../src/core/index.js').Rotation} */ (action), cube._cubeConfig.layers.length);
|
|
141
|
+
if (slice) {
|
|
142
|
+
cube.slice(slice);
|
|
143
|
+
} else {
|
|
144
|
+
console.error('Invalid action', action);
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
const slice = GetMovementSlice(
|
|
148
|
+
/** @type {import('../src/core/index.js').Movement} */ (translate(action, bigCubeType)),
|
|
149
|
+
cube._cubeConfig.layers.length,
|
|
150
|
+
);
|
|
151
|
+
if (slice) {
|
|
152
|
+
cube.slice(slice);
|
|
153
|
+
} else {
|
|
154
|
+
console.error('Invalid action', action);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const scrambleState = cube.getStickerState();
|
|
159
|
+
|
|
160
|
+
for (const action of solutionActions) {
|
|
161
|
+
if (IsRotation(action)) {
|
|
162
|
+
const slice = GetRotationSlice(/** @type {import('../src/core/index.js').Rotation} */ (action), cube._cubeConfig.layers.length);
|
|
163
|
+
if (slice) {
|
|
164
|
+
cube.slice(slice);
|
|
165
|
+
} else {
|
|
166
|
+
console.error('Invalid action', action);
|
|
167
|
+
}
|
|
168
|
+
} else {
|
|
169
|
+
const slice = GetMovementSlice(
|
|
170
|
+
/** @type {import('../src/core/index.js').Movement} */ (translate(action, bigCubeType)),
|
|
171
|
+
cube._cubeConfig.layers.length,
|
|
172
|
+
);
|
|
173
|
+
if (slice) {
|
|
174
|
+
cube.slice(slice);
|
|
175
|
+
} else {
|
|
176
|
+
console.error('Invalid action', action);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
const solutionState = cube.getStickerState();
|
|
181
|
+
|
|
182
|
+
// Assert
|
|
183
|
+
expect(/** @type {string?} **/ (toKociemba(scrambleState))).not.toBe(toKociemba(initialState));
|
|
184
|
+
expect(/** @type {string?} **/ (toKociemba(solutionState))).toBe(toKociemba(initialState));
|
|
185
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import './setup.js';
|
|
3
|
+
import { expect, test } from 'bun:test';
|
|
4
|
+
import { toKociemba } from '../src/state/stickerState.js';
|
|
5
|
+
import { scrambles } from './testScrambles.js';
|
|
6
|
+
import { RubiksCubeState } from '../src/state/rubiksCubeState.js';
|
|
7
|
+
|
|
8
|
+
test.each(scrambles)('RubiksCubeState solve on $cubeType with scramble = $scramble', ({ cubeType, scramble, solution }) => {
|
|
9
|
+
// Arrange
|
|
10
|
+
const cube = new RubiksCubeState(cubeType);
|
|
11
|
+
const initialState = cube.getState();
|
|
12
|
+
const initialKociembaState = toKociemba(initialState);
|
|
13
|
+
const scrambleMoves = /** @type {import('../src/core/index.js').Movement[]} */ (scramble.split(' '));
|
|
14
|
+
|
|
15
|
+
scrambleMoves.forEach((move) => {
|
|
16
|
+
cube.move(move);
|
|
17
|
+
});
|
|
18
|
+
const scrambleState = toKociemba(cube.getState());
|
|
19
|
+
|
|
20
|
+
// Act
|
|
21
|
+
|
|
22
|
+
const solutionActions = /** @type {(import('../src/core/index.js').Movement | import('../src/core/index.js').Rotation)[]} */ (solution.split(' '));
|
|
23
|
+
for (const action of solutionActions) {
|
|
24
|
+
if (action.includes('x') || action.includes('y') || action.includes('z')) {
|
|
25
|
+
cube.rotate(/** @type {import('../src/core/index.js').Rotation} */ (action));
|
|
26
|
+
} else {
|
|
27
|
+
cube.move(/** @type {import('../src/core/index.js').Movement} */ (action));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const solvedState = toKociemba(cube.getState());
|
|
31
|
+
|
|
32
|
+
// Assert
|
|
33
|
+
expect(scrambleState).not.toBe(initialKociembaState);
|
|
34
|
+
expect(solvedState).toBe(initialKociembaState);
|
|
35
|
+
});
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { CubeTypes } from '../src/core';
|
|
3
|
+
|
|
4
|
+
/** @type {{cubeType: import("../src/core").CubeType, scramble: string, solution: string}[]} */
|
|
5
|
+
export const scrambles = [
|
|
6
|
+
{
|
|
7
|
+
cubeType: CubeTypes.Two,
|
|
8
|
+
scramble: "R' F U' F' U2 F R U' R' U' F'",
|
|
9
|
+
solution: "z R U R' R2 U2 R U2 R2 z' x",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
cubeType: CubeTypes.Two,
|
|
13
|
+
scramble: "R F R U2 R' U2 R2 U' R2 U2 F",
|
|
14
|
+
solution: "y R U' R2 U2 y' R U' R2 F R2 U' R' U R U R' U' R' F R F' x2",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
cubeType: CubeTypes.Two,
|
|
18
|
+
scramble: "R U2 R2 U' F R' U2 R' U2 R U2",
|
|
19
|
+
solution: "x y' U R U R2 R U R' F' R U R' U' F R' F' R U D2 z'",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
cubeType: CubeTypes.Two,
|
|
23
|
+
scramble: "R U2 F' R2 U' F' U R' U' R U2",
|
|
24
|
+
solution: "z' x R U2 R F R2 U' R2 U' R2 U R2 F' U x2 y",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
cubeType: CubeTypes.Two,
|
|
28
|
+
scramble: "R' F' R2 U' R' U F' U F U2 R2",
|
|
29
|
+
solution: "x R U R y' U U y' R' F R U' R' F R U' R U R' F' U' y2 x'",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
cubeType: CubeTypes.Three,
|
|
33
|
+
scramble: "D U R2 B2 D' B2 D R2 F2 L2 R B U2 R2 U' B' L D' R U' R",
|
|
34
|
+
solution: "D L R' F R D2 R U' R' F u R U2' R' U R U' R' U' L U L' D U L' U' L U2 L' U L L F' L' F U R' U2 R U2' R' U R U2' R' U R U2' R' U' R U y'",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
cubeType: CubeTypes.Three,
|
|
38
|
+
scramble: "L2 D' L2 F2 R2 B2 U L2 U L' R U' R D' B' R U L' F U'",
|
|
39
|
+
solution:
|
|
40
|
+
"x' z' U' r' z x' y x z' D U' z y' U' D U' R u' R' U R U' r U' r' y' U2' R U R' U2' R U' R' y' R U R' y' U' R' U R y' U R' D' r U' z' u' z D R U R U2' U R' U' U R U' R' U' R U R D z' U' z U' U' z' U R' U2' y x",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
cubeType: CubeTypes.Three,
|
|
44
|
+
scramble: "L D F2 B D R L' B' U D2 B U2 D2 B U2 B' U2 R2 L2 B2",
|
|
45
|
+
solution:
|
|
46
|
+
"y B2' D' R' D R' U R r U' r' y' R U' R2' U R U L' U U L U L' U' L U2 U R U R' U R U' R' U' L' U' L U' L' U U L U R U R' F' R U R' U' R' F R2 U' R' U'",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
cubeType: CubeTypes.Three,
|
|
50
|
+
scramble: "R2 U2 F2 U L2 U' L2 F2 U2 F2 U2 R B U2 L' R2 D2 B2 D R",
|
|
51
|
+
solution:
|
|
52
|
+
"z2 R D R F U' D R U' R' U R' U' R U' R U' R' U2 R U' R' y' y' U R U' R' U' R U' R' U R U' R' U' R' U' R U' R' U R U r U2' R' U' R U' r' R U R' U' R' F R2 U' R' U' R U R' F' U x2",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
cubeType: CubeTypes.Three,
|
|
56
|
+
scramble: "U' D2 B' R2 B' D2 R2 B F2 D2 F' L2 F R F2 L2 D' B D R U",
|
|
57
|
+
solution: "z2 y D' R' D2 U' R' F D' U y' L' U L U R U' R2' U R y' d U2' U' R' D' R U' R' D R U' L U L' y' U L' U' L U R U R' U' R' F R F' U' x2 y'",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
cubeType: CubeTypes.Four,
|
|
61
|
+
scramble: "D2 F D2 F U2 L2 F R2 F2 D2 L2 R B L' B' L' D' F U Uw2 Rw2 L' Fw2 L' F' L' B' Uw2 B Rw2 F' L Uw' B' U Rw2 D U2 Fw' Rw' B' F2 Uw' B2 L'",
|
|
62
|
+
solution:
|
|
63
|
+
"z r U' r' F U r' y u' u' U2 l' U2 l z' x' r2' F U2 x' U' U' r2' 3r2 B U' r' F' 3r 3r' U' U' r2 U' r2' 3r2 U' 3r' r U2 r' U' U' r2 U' U' r2' 3r2 U r' U' 3r' r2 U2' r' x' y' x' u' U' R' U' R u D' F D u' R' U' R 3d U' U L' U L d U' R U' R' u' U R U' R' u U' R U' R' u' U' y' R' U' R u U' R U R' L U L' 3d R U' R' U' R U' R' U R U' R' y R U' R' U R U' R' 3d' U' F' U F U' L' U2 R U R' U2 L R' U R' U' R3 U' R' U R U R2' z2",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
cubeType: CubeTypes.Four,
|
|
67
|
+
scramble: "R B2 U2 R' L2 F2 D2 U2 L' U2 L' U F2 L D2 U' F L B' R' Uw2 F' U2 Fw2 B2 Rw2 B' R' B Uw2 R2 Uw2 R' B Uw' L' Uw2 U' Rw' Fw Rw2 Fw2 B' R2 B2",
|
|
68
|
+
solution:
|
|
69
|
+
"z' 3r' F' u U2' r2' U r y' R u D' l' U2 l 3r2' y F D R' y u' z L2' U x2 3r U r U r2' r' U2' r U' r' 3r U 3r2' r2 U2 r' 3r U r U' r2' 3r U2 3r' r x' y' x' u2' y R U R' x U R' U' x' R u2' D' L' u D R' U R L' U L y' 3r U' 3r' F R U2 R' u' y2 R U' R' u' U R U' R' u F R' F' R u' R U' R' u L' U L U2' F U F' R' U2' R U R' U2' R U L U' L' U2 U' R U2' R' U F' U' F U2' 3l L2' U' L U' L' U2 L U' L 3l' U2' R U R' F' U' 2R2 U2' 2R2 u2' 2R2 u2' U' R U R' U' R' F R2 U' R' U x2 y",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
cubeType: CubeTypes.Four,
|
|
73
|
+
scramble: "R2 D2 B L2 D' U' L2 D' L2 R2 D' U2 B' L2 B R F' L B2 Fw2 L2 D' R2 Uw2 U' Fw2 D L' Uw2 B2 U B Uw2 D2 Fw L2 D' L' Fw2 Uw' B' Uw' Rw F'",
|
|
74
|
+
solution:
|
|
75
|
+
"x' x' f' U' r U r' U2' r' F' u' l' U2 l L' R u2' 3r' x' R2 u2' R F u2' z 3r' F x' 3r U' r U r' U 3r' r U' r' 3r' U' 3r r' U2' r U r U2' r' x' y' x' U R' u F' U F u' D' F u D y R U R' R' U2' R y' u' y U F R' F' R u' R U2' R' u F' U F u' y L' U L d U R' F R F' R U' R' U' R' F U' F' R y' U2 L' U L y' R' U2' F R F' U2' r U2 x r U2' r U2 r' U2' x' r U2 r' U2' r U2 r' U2' r' U' R U2 R2' U' R2 U' R2' U2' R R' U R U' R' F' U' F R U 3l' U R' U' x' R U' R U' x2",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
cubeType: CubeTypes.Four,
|
|
79
|
+
scramble: "L B' F2 D F2 R2 D' L2 F2 U' R2 D B' U R' D F2 U' R' F2 Fw2 D' R Fw2 U D' Fw2 D' L Uw2 U' R' D2 Fw' U2 R Uw F2 Rw' L Fw' L F2 D",
|
|
80
|
+
solution:
|
|
81
|
+
"x U D l' D R' U R r2' U r 3r' 3d r U2' r' x D R z' x' y' D R u' U' F z U r 3r U' x2 r' 3r' U' r U r 3r 3r U' 3r' r U r2' 3r U r U' r U r' x' y' x' u2' y R U' R' u2' F2 D2' u y 3r U' 3r' F y L' U L u' y L' U L U R U' R' u' R U R' F R' F' R u U2' r2 D r' U2' r D' r' U2' r' y U' U R U' R2' U R y' U' R' U R U' y' R' U' R2 U R' U R' U R U R' U' R U2' r U2 x r U2' r U2 r' U2' x' r U2 r' U2' r U2 r' U2' r' U2' R U R' U R U' y R U' R' F' U' m2' U2' m2' U' m2' U2' m2' U x2 y",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
cubeType: CubeTypes.Four,
|
|
85
|
+
scramble: "L' B R2 B' U2 F' U2 L2 F L2 B2 L2 B2 U' R U' D' L F' U Uw2 Fw2 B' F U' Rw2 U' F' B L2 D' U' L' U' Rw' Fw2 D' R Fw D R' Fw2 Uw Fw2 L'",
|
|
86
|
+
solution:
|
|
87
|
+
"x y' U2 x' U2' r' U' r2 y u2' U' l' U2 l x' z' x' F u L F R u2' D R y2 x y r2' U L' U' r2 U' 3r r2 U' 3r 3r r U' r' U r2' U2' r2 3r' U r U2' r' x' y' x' R' u F' U' F u' D' F u D R U R' y R U R' y F' U' F u' y2 U R U' R' u' F R' F' R u R U2 R' u' R U R' d R' U R R U R' y' R' U' R y' U' R' U R R R' R U R' D' L' U L D U' F' L U L' F U2' R U' R2' F R F' U2' r U2 x r U2' r U2 r' U2' x' r U2 r' U2' r U2 r' U2' r' R U2 R' U' R U' R' 2R2 U2' 2R2 u2' 2R2 u2' U2 y' x R' U R' D2' R U' R' D2' R2 x",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
cubeType: CubeTypes.Five,
|
|
91
|
+
scramble:
|
|
92
|
+
"L U2 Uw Bw L' Dw B2 Fw2 U' Dw L2 Fw2 Lw' F Lw D' Uw' B Rw Fw F2 Rw' Dw' Lw U2 L2 Dw' B2 Bw' R D2 Rw2 Dw2 Uw B Fw' Rw2 F2 Rw' Dw D' Uw Bw L' Dw' R2 Fw2 Lw' Rw2 D2 Lw2 U Fw2 L Bw' Lw Uw2 B' Dw' L2",
|
|
93
|
+
solution:
|
|
94
|
+
"D' r' R u D r' U l' U' l L u' l y U 3l' 3l l' U l y' U' r' F' r2 U r' z x' U' r U2' r' x' z' U l' U2 l z' D' x r2 F 3r' U L U2 3l' l2 F' x' 4r' U' U' r2 3r2' F 4r U' 4r' 3r2 4r' U 4r U' r' U 4r U' 4r U 4r' 3r r' U' r2 3r' U 4r 4r U' 4r' r U r2' U2' r U' r r' r U r' 4r U2' 4r' r U r' U2' r U r' z' y 3d' U L' U L u D2 L' U 4d R U' R' u' U' L' U L U R U' R' U d' 4d R U' R' u R' F R F' R U' R' 3u' u U' R U' R' u' R' F R F' R U' R' 3u' u U R U' R' d d U' R U' R' u' 3u R U' R2' U' R y' d R U' R' d' d' L' U L u d L' U' L 4d R U' R' u' U2 R' U R U' R' U' R R U2' R' y L U L' U' L' U2 L 4d' L U L' R2 D 4r' U' 4r D' R2' U' R U R' U U' U R U R' U R U R' U' R U2' R' U2 R' D' R U' R' D R U' x2",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
cubeType: CubeTypes.Five,
|
|
98
|
+
scramble:
|
|
99
|
+
"U' L Uw Lw Bw' Lw R' Uw2 Bw Rw D U Rw' B Dw2 Rw2 D' L' Rw2 B2 Uw' L' Fw2 Bw2 Uw Fw B' Lw L R' U F B2 Rw' U' Rw D2 U2 Dw F' B Fw Dw' Lw U Dw Rw2 F Bw' Uw2 Rw' B2 Fw Dw' Lw L' Rw2 Uw B' Dw'",
|
|
100
|
+
solution:
|
|
101
|
+
"y U' B' r2' F D l L u2 y' D l' 3l' U' 3l U r U r' F' d' r U r' x' y' x' r2 3r' 3r r' U2' 3r' r z' U' r U2' r' z' 4r' U 3r2' U' r' F 4r U' r' x' U2' r2 4r2' F x' R U r' U' l D' x 4r' U r 3r2 U' 3r2' U 4r U2 r' U' 4r U' r' U' r 4r' U' 4r U' U' 3r U 3r' r' 4r U' r' U r' U2' r2 4r' 4r U' 4r' 3r r' U' 3r' 4r U' r U r' U' r U z' 3u y' y' R' F R F' R U' R' d D' R U R U' R2' D2 R U' R' y' u R' F R F' R U' R' 3d' L' U L u' 4d R' U' R u2 U' L' U L y R' F R F' R U' R' 3u' U2 R U' R' u' 3u' R U' R2' U' R y' U' 4d R U' R' u U d' R U' R' u' 3u U' R' U2 R U' R' U R L U L' D' U' L' U L D R' F R L' U' L U' R' F R L' U' L U' R U' R' U' R U' R' U R U R' U R' F' R U R U' R' F z2",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
cubeType: CubeTypes.Five,
|
|
105
|
+
scramble:
|
|
106
|
+
"Bw' R' D Dw' Bw' Rw' Fw Bw B2 Dw2 Lw' Dw2 L2 B' D Dw2 Bw' F2 Dw2 L2 Lw' Dw2 F Rw' L' R' F' R' L' Uw Fw2 L2 F' D2 L2 Rw Bw' L' Dw Bw Rw' Fw U2 Dw2 Uw L2 Fw' F D F Lw' L' Rw Uw Dw' Lw R2 Rw Bw2 Fw'",
|
|
107
|
+
solution:
|
|
108
|
+
"y l F' U' r' 3r 4r' u 3u2' 4u U r' F' L u' U r U2' r' z x' F 3l' l2 z' U' r U2' r' z' x' x' F' U r2' F 4r2' U' 3r' U 2-3l' L F' U x' R' U r 2L' F' 4r U' U 3r2 U' 3r r 4r' U 4r r' U 4r 4r 4r' r' U 3r U 3r' r' 4r U 4r2' r2 U r2' 4r U' 3r r' U' 3r' U2' r 4r U' 4r' U' r U r' U r U' r' x' y' x' U' F R' F' R u' R' U R 3u' R' U R' U' R R U' D R U' R' 3u U U' R' F R F' R U' R' d R U' R' u' R' F R F' R U' R' u' U U R U' R' 3u 4d' L' U L U d U L' U L R' F R F' R U' R' u U' d y U' L' U L u2 R U' R2' U' R y' u' R U' R' u F R' F' R u' U R U' R' u U' L' U L 4d R' U R2 U' R' y' L' U' L U R U' R' y R U' R2' F R U2' R' F' R U L' U L F R' F' R2 U2' R' U R U2' R' U R U' R2' F R F' x2 y",
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
cubeType: CubeTypes.Five,
|
|
112
|
+
scramble:
|
|
113
|
+
"D U Lw2 R Uw2 Lw' Fw2 Bw' U2 Fw' U2 Fw Rw' Uw' D' L2 Lw' F' Rw2 R' L' F Rw' Fw Dw' U' R' B2 Bw L' Fw' L' B U' Rw B2 L Dw2 Uw' R' Bw2 Uw2 U2 B R2 Uw2 Fw Bw Uw2 L' Dw Bw' Dw' R2 2F' Dw2 L' R Uw' R",
|
|
114
|
+
solution:
|
|
115
|
+
"x z F 3r' F u' D r' 2-4d l' U l2 l' U l 3r U 3r' F r U' r' x' y' F' U' 3r' r z' U r U2' r' z' L2' x' U' r R B l F' r' 2-3l' U2 r2 U' x2' 4r2' R2 U' U' R U r2 3r' 4r' F 4r2 U' r2' U' 3r 4r 4r r 4r' U2' r U r r2 U' r2' U' r U' r' U 4r r' U2' r 4r 3r2' U 3r2 U2' r' U2' r U r2' U2' r2 4r' 4r U r' U 4r' r U 2-3l' U 4r' r2 U2' r' U r U2' r' U' x' y' x' R U' R' u d D' R U R U' R2' y' R' U R 3d' U' L' U L 3u U 4d R U' R' 3u L' U L d' U' L' U L U R U' R' u d U y' U R U' R' u U' R U' R' u2' 3u y R U' R2' U' R y' U' u U' L' U L u' R' F R F' R U' R' d R' F R F' R U' R' d' U' L' U2 L2 U L2' U L U' L' U L U2' L' U L y U U L' U L U' L' U' L U' R U R' U' R' F R F' U R U' R' U' R2' D' 4r U2 4r' R U R' D R U' R U R' U R x2 y",
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
cubeType: CubeTypes.Five,
|
|
119
|
+
scramble:
|
|
120
|
+
"Lw' B Rw Bw' Fw2 R2 Bw2 Lw R2 Uw' R2 Rw' Bw' F L F D' F2 Bw2 U2 Lw' Fw' Bw2 D Dw Fw R2 Fw D2 Dw' R' Uw2 Rw' Uw' Rw' F2 L B' Dw2 Lw' Uw' Bw' U' Rw R2 Bw2 Dw2 L' Bw2 R2 Rw L2 Bw2 D' Fw2 Rw L D' U2",
|
|
121
|
+
solution:
|
|
122
|
+
"z y F U r U' r' U2 x' l' U l2 L' R u' 3u d U' l z 4d' x U' l U2 l' F' L u 3u' r U2' r' z x' R U' 3r2 U' U' 3r' F R U' r U' U' r2' 4r B 4r2' U' r' D' 4r U 4r' r U' r' 4r U' U' r' U r U' 4r U' U' r' U r U' r' U r U' U' 4r 3r' U 3r 4r U U' U 4r2' U 3r2 U' 3r2' U 4r U' 3r U' 3r' r' U2' r r U2' r' 4r r' U U' r U2' r' U' r U r' U2' r x' z' R U' R' 4d R U' R' 3u' R U R' 2-3d' R U R U' R2' R U' R' u y' u L' U' L 4d R U' R' 3d' U L' U L 3u' R U' R' y u' R' F R F' R U' R' u' 3u U2 R U' R' y u' U' d' R U' R' u' 3u2 R U' R2' U' R y' F R' F' R 3u' R U' R' 3u u' U' d R U' R' u 3u' y U' R U' R' U R U' R' U R' U' R U' R R' R U R' 4d' R' U' R y' 4d' U' L' U L y' U L F U F' U' L2' U L U2 R U2' R' U' R U R' U' R U' R' U2' x2 y'",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
cubeType: CubeTypes.Six,
|
|
126
|
+
scramble:
|
|
127
|
+
"L U L' R2 B2 Rw' F2 R' Lw' D2 3Fw2 D' 3Fw2 Dw2 3Rw2 R2 L' Fw' R' Uw 3Rw Fw' 3Fw R2 Uw' R2 Lw' D2 3Rw L Bw Dw' Lw2 U2 F2 Fw' Lw2 Rw2 3Rw' R Uw' Rw' F2 3Rw' Uw D2 3Fw Fw 3Uw' F2 Lw' Dw' Lw' Rw' 3Uw 3Fw Uw' Rw2 Bw2 Dw2 U2 B' Bw' R2 3Fw' Lw2 3Rw' F' L2 3Uw U' R 3Fw' D2 Lw' Rw' 3Uw' Fw' U 3Rw2",
|
|
128
|
+
solution:
|
|
129
|
+
"x' y D2' r2 U' r' 4r U' 4r' U' D' U' 3r' r z' F U 3r U' U' 4r' z' U r U r' x 3r U 3r' r' F r U 3r' F2 3r U' r U' r' y' 3r r' z' y' r U2' r' z x' U2 3r2 r2' U2' 3r2 r2' x z' U2 3r' U2' 3r z U2 4l' U2 F 3r 4l R u' R2' u r' f x' d' D U' r2' U' 4r2 x' U' r' U r U 4r' 3r x' D x' D' U' 3r2 U 3r U' 3r U' 3r' x U r U2' r' U2 r U' r2' U 3r U r' U' 3r' r U' r U' r' U r U r' x' U 4r2 3r2' U' U' 4r2 3r2' U' U' 3r U' 3r' U 3r r' U 3r' r3 U2' r2' 3r r' U 3r' r U' r U' r' U 3r U2' 3r' r U2' r' U2 r U' r' 3r2 U2' D2' z' u u' U 4u' U R U' R' 3u' 4u2 R U' R' u U L' U L U u' R' U' R U' 3d' U' y' U R' U' R U' 3u R U' R' z2 U u2' U2 F R' F' R U' u 4u' R U' R' u 4u' R U' R' u 3u' R' U' R U' d2' U' U' y' U' R' F R F' R U' R' 3u 4u' U R U' R' U' u2 3u2' z2 U R U' R' u U U y' U R U' R' u' U R' U' R U' d' U' R U' R' z2 u y' R' U' R U' 3u 4u R' U R u 3u' 4u' U R U' R' u' 3u 4u y' R' U R U' 4u L' U L 4u' u' 3u y' R' F R F' R U' R' 3u' u2 R' F R F' R U' R' u' U L U x' y D' y' R R y' R U' R2' U R y' R' U R U' R' U' r R R' r' R U2 L' U' L R U' R' U' L' U L U L' U' L U' U' R' F R U R' F' R F U' F' R' U R U' R' F' U' F R U R' U' r r' R U' y R U R' x2 y",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
cubeType: CubeTypes.Six,
|
|
133
|
+
scramble:
|
|
134
|
+
"D Fw' R2 F2 Dw' Lw' Rw' F U2 3Uw 3Fw' Bw Rw2 L2 Bw2 B2 Uw 3Rw' Lw Rw2 3Uw2 Dw2 3Fw2 U2 Rw F Bw L 3Rw Dw2 3Fw' Dw2 D Bw' F Fw' D 3Fw' F' R' L B Rw' 3Fw2 U' L2 Lw' D Bw Uw2 3Fw2 Uw2 Bw' Fw U' Fw2 L 3Rw Bw' D' 3Rw' 3Uw2 Lw' U' Dw F R' B Rw U2 B2 Fw' 3Rw R 3Fw2 3Uw2 D' 3Fw' L Dw",
|
|
135
|
+
solution:
|
|
136
|
+
"y' U 3r r F' F D' r r' U' r z y z' y' x U r' U' r U' r' U l y x' D U x' 4r2 L 3u x' U' U' r2 D' 3l2' U2 x' r u x U' 4r' F U x' 4l' U2 r U' 4r' z' F' 3r U2' 3r' x U' r' U' 4l R' 3u' 4u 3l' U2 3l 3u R2 u r U' U' r' z x' x' x' x' 2-3l' U2 r' F x' U 3r2' R2 U' r2' x U R' R' U' l U x x L U 3r2' x2' 5r U' 3r 4r' 5r' D 5r U 3r' U' 3r U 5r 3r' U r U r' U r U' r' U r U 2L' 5r 5r' 3r2 U 3r 5r2 3r' U' 3r 5r2' U' 4r r' U' r2 4r' 5r2 r' U' r' U' U' 5r' r3 U r' 5r U 5r2' 4r U' 4r' 5r 3r U' 3r' U 3r U' 3r2' U' U' 3r 4r' r2 U r' U' r U' r2' U 4r U' r' U 5r' r U' U' r U2' r' U2' r U r' 3r U2' 3r' U' r U' 4r r' U r' U' r 4r' z' U' L' U L R U' R' u F R' F' R u' 4u L' U' L' U L2 y' u L' U L 3u' L' U L u' y L' U L 4d L' U L 3u y' y U' y' 3u 3u 4u' 4u' U' y 5d 5d' U' U U' L' U L u' R' F R F' R U' R' 3u' d U' R U' R' u' U2 R U' R' 3u' u R U' R2' U' R y' L' U L R' F R F' R U' R' 3u' R' F R F' R U' R' 3u R U' R' u L' U L u' 4u' R' F R F' R U' R' U' d R U' R' u' 4u R' F R F' R U' R' 4u' u R U2' R2' U' R y' R' U2' R U R' U2' R U' L' U2 L U2' L' U L U R U' R' 5r U' 5r' U2 5r U 5r' U U U' R2' D' R U' R' D R U R' D' R U R' D R U R U' R' U' R 3r2' F2 U2' 3r2 R2' U2' F2 3r2 x2 y",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
cubeType: CubeTypes.Six,
|
|
140
|
+
scramble:
|
|
141
|
+
"Dw R2 3Rw2 Bw L' B U' B' 3Fw2 Fw F U Lw2 3Uw2 Fw2 Lw2 U' L' Lw F2 Uw2 Bw' Rw Bw' Dw' Uw2 D 3Fw2 D' Rw' U' B2 L U' Fw B2 Bw2 3Fw' L' 3Fw Lw' B2 Bw2 3Rw' Fw Uw Lw Fw' F Dw 3Rw U2 L' F' R2 F' 3Rw' Dw L 3Fw' Dw2 Lw 3Rw2 Rw2 B2 3Fw D2 3Uw R2 U L Dw 3Fw D' B 3Uw Lw U Dw2 Fw'",
|
|
142
|
+
solution:
|
|
143
|
+
"z x D 3r D' U F l' 3r r' U 3r2' x y x' D' 3r2' y x D x U r' U r' y x U' 3r' y' F' U r U r' U' 3r' 3r U' 3r' U 3r U' 3r' U 3l x U 3r' r U 3r r' x' z U' r' U l z' U' 4r 3r' U' U' 3r 4r' z U' r' U 4l x' U' 3r2 4r2' x z' U' 3l' U2 3l L 3u2' 4u U l' U2 l z U' 3r x' U2 4r2 U' x U x r2' x' L2' U' 3r 4r' 5r' D x' U' 5r' 3r' R2 U 4r 5r' r' U 2-4l' F' U 5r' 3r U' 5r U' r' U' r U' r' U' 3r 3r U 3r' r2 U 4r' 5r' 4r2 U 4r2' U' r' 5r' 3r U' 3r' 5r r' U r 5r' U 5r' 5r 5r' r2 U r2' 5r2 r' U2 r U' U' 5r' 5r' 5r 3r' U' 3r r' U' r U 3r U2' 3r' 5r' 3r U' 3r' U' 5r r' U r2 U' U' 5r' U r' U' U' 5r 3r' U' U' 5r' 3r 3r r' U r U r' U 3r' r U r U' r' U r U2' z' 5d R U' R' 4u' u 3u' y L' U' L' U L2 U' L' U L R U' R' 3u R U' R' 4d L' U L 3-5d' L' U L d' U' L' U L y' y' u R' F R F' R U' R' 3u' u U' R U' R' 3u d' R U' R' y' u R U' R' y 3u' R' F R F' R U' R' 3u U' R' U' R u d U R U' R' u 4u y R U' R2' U' R y' 4u' 3u U' U R U' R' 3u' 4u 3u' y L' U L 3d U 5d' L' U L 4u' U L' U L U d R U' x R' U r' U2' r2 U2' r U2' r' U2 r U2' r2' U2' r' U x' 5d' U' R U R' U' R U R2' U2' R L' U L 5d' U' R U R2' U2' R 5d' L' U L2 F' L' F U2 U' F U R2' D' R U' R' D R2 F' R' U R U' x2",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
cubeType: CubeTypes.Six,
|
|
147
|
+
scramble:
|
|
148
|
+
"3Fw' Lw 3Rw U' Rw B2 U R' B2 Fw' 3Fw Dw2 B F' L R2 B Bw2 Uw' 3Fw U' B2 Bw Rw2 U' F L' Bw 3Fw' R Uw' 3Fw R L' 3Fw2 B' Fw U F2 L2 R 3Uw2 Lw B Bw' Lw2 U' Fw Dw U Uw L R 3Rw B' L B Uw' Lw Rw2 F D F Lw Dw' Lw2 F' Fw L' B2 U' F B Dw Lw D2 B F Rw2 B'",
|
|
149
|
+
solution:
|
|
150
|
+
"x' z' U' 4r U 3r' r 4r2' 3r2 F 4r x' 4l' y U U' 4r' 3r r' U' 4r' 3r U' r 4l' L' U 3r r' U' x' 3r' r 3u x' U U 3r U' U' r' x' 3d' d U l U r' z' 3l' U U 3l 4r U' 4r' z' U 3r' 3r z 3d' d 3r U' U' 3r' y F U' r U' r' z' x' x z r U' r' z' x' x' D' 4r2 U' U' 4r' 3l D' l' z U' U' l' U U l z' x U U l U x' 3r r' U 3r' r U' U' D' 3r2 U 3r' x' U' x' 3r U' 3r' U r' F r2 r U' 4l' U' 4r' U l' x 3l' U U 3l U r U r' U r U' r' U r U r' 3r' 3r 4r' 3r U' 4r 3r' U' 3r r' U x' F 3r' r U 3r U 3r' U r l' U 4l' U U l x' U' 3l' U U 3l x r' U' r x' F l' r U U r' U r U' r' l U 3r 3r' 3r r' U 3r' r U' 3r r' U' 3r' r U' r U r' U' r U' r' U 4l' U' 3l' 4l U r U' x' z 3d' U R U' R' 3u y' U R U' R' U U d d 5d R U' R' u' d2 z' x' z' R U R' F R' F' R d 3d' L' U L 3d d' L' U L u' R U R' F R' F' R u' U' R U' R' z' z' U R U' R' 3u u' 5d U R U' R' 3u' u U' U' R U' R' z 4r2' 3r2 z' R U' R' 4d z x' x z' 3u 5d R U' R' 3d' 4u' 4u 3u' d' U R U' R' u 4u' R U R' 5d' L' U L z2' u U' U' R U' R' u R U R' F R' F' R 3u' U d U R U' R' u' x2' R U R' F R' F' R y 3u' 3d' d U R U' R' d d U R U' R' z' 3r' r l2' x x' U R' U' z' 3u' R U R' F R' F' R 3u R' U R 3u' u U' U' F R' F' R 3u u' R U R' F R' F' R U d R U' R' d' u 4u' F R' F' R u' d z' x' U' U' 3r2' r2 z' R U R' F R' F' R z' 4r2' 3r2 x' F x' F z' L U D R2 U D F' D D U L U' L' R' U' U' R y U' R U R' 5d R U R' L' U L U' R U' U' R' U R U' R' R U R' U' R U' R' F' U' F R U R' U' x R' U R' D D R U' R' D D R2 x' u' u U' x",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
cubeType: CubeTypes.Six,
|
|
154
|
+
scramble:
|
|
155
|
+
"D2 B 3Fw' Rw R2 3Uw D2 3Rw2 B' Lw2 L' Bw2 3Rw Rw2 Dw 3Rw Bw 3Uw2 Bw Fw' R2 Rw' Lw U' F' Bw2 Fw2 U2 Fw2 Uw2 3Uw2 D' Rw 3Fw R' Fw' F U2 Bw2 Dw 3Uw U2 D Rw D2 B D L 3Rw 3Uw Rw F' Fw' Dw L' 3Rw2 Bw' U Fw 3Uw2 Dw2 Fw' Bw2 D2 Dw2 Lw' 3Uw Lw Fw' Uw' F Bw' B' 3Fw' R2 3Rw2 L2 F2 Bw L2",
|
|
156
|
+
solution:
|
|
157
|
+
"x z2 U' r' 4r2 U x' U r U' U' r' U' l' x U r U' x' z' 3r r' 3u u' x' x' F r U r U' 3r r' U' 3r' r 5r' d' z' F U l' U l U' r U r' z' U' 3r' r U' r' z r U' U' r' z' x' 3r' r F 3r r' z u 3r U' U' 3r' z' U' 3r' U r U' x' U r' z U l' U U l z' 4r U' U' l' r' U' r x U 3r r' U 3r' r U l' x U 4l U x 4l U r' D' D' 3r2' r2 U 3r r' U' 3r2 U' 3l2' U 3r' r 4r' 3r U' 4r r' U' r' x' F 4l' U r U' U' x' x U r' U' r U' x' x' 3r U' 3r' x r' U r x' l2' U U l2 x U x' U 4l' U r2 U' U' r' U x' U l' U l U' r U' r' 3r2' r2 U2 3r2' r2 4r 3r' U2 4r' 3r U 3r U' U' 3r' F U U' r U' r2' F' 3r U r U' 3r' F' U' r' F 3r U' r U 3r' x' z' R U' R' u U' F R' F' R u' U L' U L 3u' u y R U' R' U 4u' U 5d' L' U L z2' u U' U' R U' R' d' R U R' F R' F' R d U' L' U L u' U L' U L 4u' 3u R U' R' L' U L u' z' x' z' U' y U F R' F' R 3u u' R U' R' 3u u' z2 U R U' R' 3d' d R U R' F R' F' R d U' F R' F' R 3d' d U' F R' F' R u' z' x' z' u U' R U' R' u' y u' d R U' R' u' d 5d' L' U L z' x' 3r' x' z' R U R' F R' F' R 4u' u U' R U' R' z' x' 3r' r z' U' U' z' 4r 3r2' U R' U' z' R' U R 3u' R U' R' 3u d U F R' F' R u d d U U L' U L u' 3d R U R' F R' F' R 3d' d U' x' D R' D x' 5r x z' x' U' R2 D U 5r U' U' 5r' U L U L' D' U R' U' R2 U' U' R2' U' U' R U R' U' R L' U L 5d R U' R' U 3r U' U' 3r x U U 3r U' U' 3r' U x' F 3r U' U' 3r' U U 3r U' U' 3r' U U 3r' U R U R' F' R U R' U' R' F R2 U' R' U' 2-3Rw2 U U 2-3Rw2 3u 3u 2-3Rw2 3u 3u y2 x'",
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
cubeType: CubeTypes.Seven,
|
|
161
|
+
scramble:
|
|
162
|
+
"B' Rw' Lw2 3Rw2 Fw' 3Rw' 3Uw2 Lw2 3Lw' 3Rw B Rw2 U 3Bw' 3Fw2 U' Bw F' Uw R' Lw 3Fw' Fw2 R' 3Rw' 3Uw 3Rw' Fw' 3Lw' R2 B Uw' Rw2 Bw Uw' F2 R B Fw' Rw' Bw 3Bw 3Uw2 3Dw' L2 D2 R 3Rw 3Uw2 3Lw' 3Fw Fw2 B' Rw' 3Rw Lw R U' Rw' 3Bw' 3Rw2 3Bw2 Fw U2 Uw B2 Dw' Lw' Dw2 Rw2 Lw2 Dw Rw' D L' 3Bw 3Fw2 D 3Fw2 3Bw' Rw 3Fw2 Uw2 3Fw2 3Rw L' D 3Bw' 3Fw2 3Lw Rw 3Bw D2 3Uw U 3Dw2 3Rw Rw 3Lw2 3Uw'",
|
|
163
|
+
solution:
|
|
164
|
+
"x' y 4r 3r' U' 4r' 3r 5r U 5r' U' 5r U F r U r' z' F' 4r U' 4r' 3r r' U' r U' r' U' x' 4r' x' U' r2' 5r2 U x' l2' z U' 3r 4r' z' r' z x' 4r U 4r' 3r U x2' 3r' x' D r2 y' U' x' D' U' r' F r2 3r' r U r' U x 3r' U' 3r U' y x' 3r U 4r' x2 U x' U' 4r' z' U2 4l' U2 4l z U x' U' 3r' z' z U' R R' u' R2 u U' x' x' 4r2 U' U' 4r2' x x U r U' r' U x2 U' x' l' 3l' l U2 3l 4l' l' B' l U x l2 F z' 4l' U2 3r z y' U' x' U 4l x' U' 4r' R' F x' l2' x' D' x' R' L' 3l U 5r2 3r2' x' x' r' L F U 6r2 U' 3l' L x' l2' L U' x' 6r U x' L' U' r' 6r U' 6r' 5r U 4r' U' 3r' U' 4r U' 3r' U 3r U' r' U' 5r' 6r' 6r' 3r r' U' r U' r' U' U2 4r x L U' U' 3r U' U' r 6r' U' 6r2 4r2' 3r2 U' 4r r' U' r' U' r' 4r 3r' U 6r' 4r U' 4r' U' r U r' U x' L' U' 5r2 U' 5r2' U' r U r' 6r l' x' 4r2 3r2' U' 4r2 3r2' 5r 4r' U' 4r U' 3r U' 3r' r U r2' 3r U' 6r' r 3r' 4r U' 4r' U' 3r U 3r' 5r 4r' U' l' 3l r U' r U' U' r2' U' 6r r' U' r 6r' U 5r U 4r' U 4r 5r' U' 4r U' r' U r U' 4r' 3r U' 3r' U' 3r U 3r' U' 3r U' 3r' U' r U' U' r' U' r U' r' U r U' U' r' U' r U 4r 3r' U' r' U 4r' 3r 6r2' U R U 3r 6r' U' U' R' U R U r' R2' 6r U R U' x2' U' R U 5r' x' 3l2' U F U' F' 6r 4r 5r R' U R U' 5r' R U' R' U D R' D' r' 3r2 x' x' D R' D' 4r r' R R' F R F' x' U' R U r 3r2' 5r2 x' R' D R' D' U R U' 3r 4r2' 5r U' R U x r l2 3l2' R' U R U' x' 4r 3r' R' U R U' 4r' x 3r' r 4r' U' R' U 6l' U R U' 4r 6l' U' R' U 6l U R U' 3r' U' R' U 6l' U R U' 4l 3l 3l' l R' U' R U 4r' U' R' U 6l' U U' U R U' l' 3l x' 3r U' U 3r' r U' R' U 6l' U R U' r' z' y' R' F R 6d R' U L U L' D U2 R U R' D' R U' R' U R U' R' y U2 R U' R' U R' F R F' L' U L L' U L U L' U L U' x R' U R' D D R U' R' D D R2 y2 x'",
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
cubeType: CubeTypes.Seven,
|
|
168
|
+
scramble:
|
|
169
|
+
"Rw2 3Rw' 3Fw2 F' Lw' 3Lw' 3Fw2 B Dw' Fw' B 3Fw2 U2 F' Uw 3Lw Lw' L' B2 U2 Lw2 3Dw2 Dw 3Fw Rw Bw 3Bw 3Lw2 Uw 3Dw2 U B' Bw2 Lw R' 3Dw2 Bw2 Fw2 3Fw2 Dw 3Uw U2 3Rw2 Uw' L2 Rw' F 3Rw2 U2 Rw2 R' 3Uw' F2 Bw2 Rw' 3Dw' Fw2 B' Rw' R L' 3Fw' Uw' 3Uw' Bw2 R' Fw' Bw2 3Rw2 F Dw2 3Fw 3Rw' 3Dw Lw' 3Dw D' Bw' 3Lw' Lw2 F L2 Dw Lw U R 3Lw2 Fw2 Uw' Lw' Bw2 U2 Uw' 3Bw' B' Uw' 3Lw 3Uw Uw Fw",
|
|
170
|
+
solution:
|
|
171
|
+
"y2 U' 4l U 4r F x 5r' U' z F U 3r' r z' d 3l r y U U' x' D U 3r' r z' x U 4r' 3r U 4r 3r' 3l l 3l' U' x' U' l' U l 3r' z' 4r' 3r r R' z' 4r 4r2' 5r x' 3r r' x' z r' z' 3r' r l' U' 4l' 3r U 3r' r U' 3r r' z y U 4r' 3r x U U 3r r' U' U' x' u F 4r z' y' u' x' x U' r' U r B' 3r' r U 3r2' r2 U U 3r' r x' r U r' l' U U l 3r U 3r' l' U l U' l' U' l U' U 3r r' U 3r' r y x' U U 4r' 3r 5r' L U U 3r2' r2 x z 3r U' U' 3r' z' U' x' r U' 4r' 3r z U' r U' U' r' z' F U' U' 3r' r' F U x U' r' U' r U' U' 3l' U x U 4l r' D 5r2' 4r2 U 5r2' 4r3 3r' x U' U 3r' U' U' r F r U' r2' x 4r' 4r 3r' U 3r 3r r' U' 4r' 3r U' U' 4r r' U' 3r' r U 3r r' U 3r' r x' 5r U' U' 5r' 3r U' U' 3r' x' 3l' U' 4r r2' F r2 U 3r' 3r r 4r' 3r U' U' 4r 3r' U r' U' U U U 3r r' U' U' 3r' r U x' 5l' U r l' U l U U 3r r' U U x' 3r' r U' 3r U 3r' U' 3l' U' 3l 5r U' 5r' U r U' r2' D D x r U' x' x U r' U' r U x' 4r r' U r U' 4r' U' 4r 4r' 3r U' U' r' U r U r' U' 3r' r U r U' 5r 4r' U' r' U 5r' 4r U' z' F R' F' R 3u' U U R U' R' 3u U' R U' R' u U' y' R U' R' 3d' U F R' F' R U' d' U' R U' R' u' d z' z' U U' U R U' R' 3u u' 6d R U' R' u 6d' U' F R' F' R 3d' R U' R' U' d' 6d R U' R' 3d' d y U R U' R' z' 4r 3r' z U L' U L z' x' z' U' d' F R' F' R 3u U' 3d' d R U' R' L' U L u' U' U' F R' F' R 4u' u' L' U L u' U' R U' R' z2' d U U R U' R' 4u' 3u U' R U' R' U' R U' R' u' U' 3d R U' R' 3d' 6d' F R' F' R d' R U R' F R' F' R 3u' U y' R U' R' y u' U d L' U L 3d d' 6d' L' U L z' z' u U' U' R U' R' U d y L' U L z' 3r2' r2 z' U R U' R' z' 3l' l' 3r2' r2 x' U U 5r' 4r z' R U R' F R' F' R z 5r 4r' U2 r z R U R' F R' F' R z' 4r 3r' r' U' U' 4r' 3r x' U2 r' z' R U R' F R' F' R u z U R' U' 5r' 4r z' F R' F' R 3u' u d 3d' R U R' F R' F' R 3u u' x y' r U' U' r U' U' x U U r U' U' 5r' U U l U' U' r2' z x' D' L R' D y D R' 6d 6d U R U' R2' U' R U' L U L' U L U' L' y' U' R' U R2 U' R' 6d R' U R R U R' U R U' U' R' R' U U R U' U' R' F R U R' U' R' F' R2 U' y",
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
cubeType: CubeTypes.Seven,
|
|
175
|
+
scramble:
|
|
176
|
+
"Bw' Dw F 3Rw2 3Bw2 F2 3Lw' 3Fw' R2 3Fw2 Rw2 3Lw' D 3Bw2 Dw' 3Dw R 3Uw2 F U2 3Bw2 3Fw B' L2 F2 3Bw Dw Lw Fw2 Uw2 Bw 3Lw' B2 Fw' U' 3Rw' R' Bw2 Uw 3Rw2 Dw' U2 3Bw 3Fw2 D U Uw R 3Lw U2 3Lw' Rw R2 Dw2 Lw2 D2 Fw' R2 Dw 3Uw 3Rw2 3Lw Bw 3Lw Bw' 3Bw2 3Dw' 3Fw 3Uw' D2 3Fw2 R Rw 3Rw2 3Fw' F' L' Dw F' 3Rw2 3Fw' D Fw2 3Rw U 3Dw2 Fw 3Uw 3Lw 3Uw2 Rw' 3Uw L2 Uw 3Bw 3Lw' 3Uw F' L2 Dw",
|
|
177
|
+
solution:
|
|
178
|
+
"x' 3r' U' x r' U' x U 3r U' 3r' F' 3l' U 3l l2' y' U r U' r' 4r 3r' x u 3u' 3r U 3r' U' 3r U' x' U l x' U' x 3r2' r2 L2 3d' U x U' 5r' D 5r2 4r2' U' U' 5r2 4r2' x' U l L u z' F' 3r U' 3r' r U r' y' U' F 3r U' 3r' U r U' r' x U' 3r' U 3r U' y U' x' U 4r U' 3r' F U' r' z' U 3r U' U' 3r' x y U x' U 3r' U l z' U' r U' U' r' z U' U' 5r' x' U' U' 4r2' x R' u 3u' R2 u' 3u x' r x' x 4r' 3r x' U' x 3r2' r2 R2' u' R2 u U 3r2' x l U' l' 3l x U' x U' U 3r' F' 3r 3l' U 3l U x U' U' x' r U' 3r U' 4r U' 4r' 3r U 3r' U 3r r' U 3r' r2 U' U' r U' r' x x U' U' 3r2' U' U' 3r2 U' 3r' U 3r U' x' 3l U U' 3r' F' 3r 5r 4r' U 5r' 4r U x' U' 4r U 4r' r U r' U' r U r' U' l' F' U U 3r U' 3r' x U' U' r U' r' U r U r' U 3r' U' U' 3r 3r' F' 3r U' r U x' r U' U' r2' x 3r' U 3r 4r 3r' U 4r' 3r U' l' U' l U r' U r 3r' U' U' 3r U' 3r U' 3r' 5r U 5r' 4r U' 4r' r' U' U' r U F 3r U' 3r' U' l' U' l U U x 3r' U' 3r U' 3r' U 3r U' 3r' U 3r r' U' r U' x' x U' l U l' U' l U' l' U' 3r' U 3r U 3r' r U 3r r' U' r' U r U' 4r' 3r U U 4r 3r' U' r' U' r U r' U' r U' U' x' r U 3r r' U' r' U 3r' r U' U' R' 3u' U' R' U R d' y u' U R U' R' 4u' 5u y' y L' U L 3u' L' U L y u' y' R U R' F R' F' R z2' 3d U' U' y' U' R' U R U' d' U R U' R' d U' R U' R' z2' u' u 3u' 4u U' R U' R' y' 4u' 5u U R U' R' 3u' R' U R 3u' 4u U' R U' R' y 3u 4u' R U' R' u' u' R' U' R y u' U d U R U' R' y x x u u U' y U' L' U L u' d y' r' r R' U R y u' 3u R U' R' 3u' 4u L' U L 3d' U' R R' U' U R U' R' 3u 3u' u d' y' u 3u' U' R U' R' U' U R U' R' y' u' 3u R U R' F R' F' R u u 3u U' R U' R' u' z' 3r' r x' U U' x 3r2' r2 U' R' U x R' U R U' 3r2' r2 U' U' x r' U' R U R' x U R' U' r x' 3r 3r' U U x' 3r2 r2' U' R U R' x U R' U' 3r2' x' U' R U R' x U R' U' x r2 x 3r2' F2 U' U' 3r2' U' U' F2 3r2 x' r U' R' U 6l' U R U' r' r' U' R U R' x U R' U' r x' U x' y' D y' R' U y' U y' R U' R' y' U L U' L' U U L' U U L U L' U' L 6d R' U R U' R' U R 6d' U' R U' U' R2' U' R2 y R U' R' F' U U' R' U' R U' R' U2 R F R U R' U' F' U x R' U R' D2 R U' R' D2 R2 x",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
cubeType: CubeTypes.Seven,
|
|
182
|
+
scramble:
|
|
183
|
+
"3Uw Rw2 3Fw' 3Lw' F 3Lw B' 3Fw' 3Rw 3Dw B2 3Uw Lw2 3Bw' Fw Rw2 F' 3Dw' 3Rw2 3Lw' Uw' Rw Lw 3Uw2 Rw Fw2 Uw 3Uw 3Lw2 D 3Fw Uw U2 R Bw' 3Fw' Rw2 Bw2 F 3Fw 3Lw U 3Uw2 3Rw Bw' R F2 3Fw2 R' Lw2 3Uw 3Fw2 Uw2 F' 3Fw' 3Lw2 D2 3Rw B' 3Uw' Dw' 3Bw 3Lw Uw Bw B' D2 Bw 3Fw' 3Rw2 U R 3Fw 3Dw D2 R' U2 3Uw' D' F D Fw' B2 3Uw 3Rw2 Rw D2 U2 F2 B L 3Rw Dw2 3Bw B2 3Dw' D2 Lw' 3Uw' 3Rw",
|
|
184
|
+
solution:
|
|
185
|
+
"z2 3r' U' 4r U' 5r U' 5r' 3r U 3r' x' U' U' r2' D 3r' U' 3r' r U 3r r' r2 U' U' r2' U r2 r2 y D' y D' U' 4r 3r' U' 4r' 3r r2 U' 3r' F 3r U x U r' U' r x z' U 4r 3r' z' 3r U' 3r' U 3r U' U' 3r U 3r' z U 5r U2' 5r' z' F2 r' y' U2 3r U' 3r' U l' U l z x U' r' U' r x' 4r' 3r z' 3r U' U' 3r' z U 4r 3r' r x' D' l' z' 3l' U2 3l z U' U' 4r' r U' x' 3r 4r' U' U' r2' x z' l' U2 l z x U x U' 3r 4r2' l x' x z' u2' U r U' U' r' z F R2 U 4l r' 5r U x 6r' r' r 3r2' U' r' R U' 4r2 6r' F' R U' 6r' 3r' R2 U 5r 6r' U' r' 6r' D 6r2 6r U 6r U 3r2' U r U r' U' 6r2 6r U' 3r' U r' U r U' 4r 6r U 6r U' U' 6r' U' U' 6r 3r' U U 3r U' 5r2' 6r' U U 3r U' 3r' U' r' U r 6r' 5r U 5r' U' 3r' U' 6r' U' 3r U 3r' U r2' 6r U 5r' U r U' 5r 6r' U' 3r U 3r' U' 6r 4r 6r' U' U' r U r' 3l' L U' 3r' U' 3r U' 6r' 5r U2 2L' 6r U 3r' U 3r 6r' 6r U' r' U r U' U U' 3r2' U' U' 3r2 6r' 3r U 3r' 5r 4r' U' 5r' 4r 6r r' U' 6r' r U r' U2' r U' 3r U 3r' r U' r' U r U r' U 6r 3r' U' U' 3r 6r' U r U' r' U 4r U' 4r' 3r U' U' 3r' U 3r U' U' 3r' U U r U' 4r 3r' U2' 4r' 3r U' U' r' U r U' U' r' z' U' u U' R U' R' u' 3u 4u' 3d' R' F R F' R U' R' u' D' R U R U' R2' D y L' U L 3u 4u' y u 3u 3u' u 5u' 6d R U' R' 4u' U R U' R' u 3u' U' R' U R2 U' R' u' U U R U' R' 5u' R' F R F' R U' R' 4u d U y' R u' u U' R' y' R U' R' L' U' L u2 3u2' 5u U' R U' R' u 3u 4u' R U' R2' U' R y' L' U L u' R' F R F' R U' R' u U' U F U' F' u 3u' U R U' R' u' 3u 6d R U' R' 4u 3u' U U R U' R' 3u 3d' 3u' R' F R F' R U' R' 3u 3u 3u' u U L' U L u' R U' R' F r' U' U' r2 U' U' r U2' r' U2 r U2' r2' U2' r' F' U y U R U' R' U R U R' D' U' L U2 L' 6u U R U' R' y R U' R' U2 L F' L' F L' U L U' U' L' U L x' R2 U2' R' U2' x R' U R U' L U' L' U R' x2 y",
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
cubeType: CubeTypes.Seven,
|
|
189
|
+
scramble:
|
|
190
|
+
"L2 3Rw' Dw 3Uw R' Fw 3Rw Uw' 3Uw D' 3Lw2 Dw' Rw2 3Lw' F 3Dw2 U 3Uw2 3Rw 3Dw' L Rw B' Uw2 3Bw' B' Rw' Fw' B' Lw 3Lw 3Dw' 3Fw Uw2 D' 3Rw2 R' 3Lw2 Dw' 3Lw' B2 R' D R 3Fw2 3Lw2 Lw2 Fw' Bw' 3Uw' Lw2 Bw' U2 3Fw2 Uw' 3Rw 3Bw2 R' 3Rw' Uw2 3Bw' D' Lw' L' R2 U2 3Fw2 Uw2 Bw B F' D 3Rw Dw2 Fw2 Uw' R 3Fw 3Rw2 L' 3Bw2 F2 Uw Rw' Lw' Dw R2 F' Uw2 R Dw2 3Rw 3Uw R' Bw F Uw2 U 3Rw' 3Lw'",
|
|
191
|
+
solution:
|
|
192
|
+
"y' z U' 5r 3r2' x U F 3r2' x U' r U r' x x' D' 5r2' 4r2 U 5r 4r' 6d' x' U 3r U 3r U 3r' F' x' 3r r' U' z' x U' r' U' r x' z x' F F 3r' U' U' r2' x z' U U U 3r r' x U U l U' l' U l F 5r 4r' U' 5r' 4r 6r' 3u' u r U' U' r' z' z' F r U' r' U' F' r U' r' y 5r 4r' U 5r' 4r U' 3r r' U 3r' r z x' 5r 4r' U 4r' r z' U 3r r' U U 3r' r x y x 4r' 6d' l' U' l U l' U l 6d' x r U 4r' U' U' r2 x' z U 5r 4r' U U 5r' 4r z x' D x r' U' 5l U' 3r' D 5r' 5r2' 4r2 x z' r U' U' r' z x' r U' U' r' 4r' U 3l' 3r' r U 3r r' U' 4r r' U r 4r' U' U U' 3r' U' U' 3r U' 5r U' 5l' U 3r 3r' r' r 3r' 4r U 4r' 3r r U' U' r' U' l' x U' x' U' 3r U 3r' U 3r2' r2 U 3r r' x' x' r U' r 3r' r U' 3r r' x' r' 5l' U' r U' B 3r' U' 3r r2' U 3r' U' 3r U x' U U' 3r U 3r' U 3r U 3r' U U l' l x' x r U' r' 3r' F F 3r x' x r' U' 3r U' U' 4r' 3r U' 4r 3r2' r U x' 4r U' U' 4r' 5r U l' U' r U' r' U r U r' U' x' U U 3l' U' 4r U x' U' 4l' U' 3r U r' l' U' l U r U 3r' U' 3r U r' U r U' r' U r x' F' 4r 3r' U' 4r' 3r U' 5r U' r' U r 5r' U r U r' U U 3r r' U' 3r' r U' 5r 4r' U2 5r' 4r2 3r' U2 4r' 3r U r U r' U U r U r' 3r U' U' 3r' 4r 3r' U2 4r' 3r U 5l' U' 5r' r U r U' x' 5r r' U' L' U L 3u U' R U' R' u L' U L 3d U' L' U L d L' U L d 6d R U' R' z' x' z' u' R U R' F R' F' R 6d R U' R' z' x' 3r r' z u U' L' U L 3u' U y L' U L 3d d U U F R' F' R u' U R U' R' z2' 3d' U U F R' F' R 3d d d L' U L R U R' F R' F' R u U' R R' F R' F' R u U' d' U' L' U L d 3d' u' z' z R U' R' u U' L' U L z' x' 4r' 3r z L' U L y' 3u u' z2' U' R U' R' 3d' R U R' F R' F' R 3u' 3d R U' R' z' z' u' 3u' U L' U L z' 4r 3r' z R U R' F R' F' R 5d' 6d R U' R' z' 4r2' 3r2 z U R R' F R' F' R 3u' d R' U R z x' x U U l' x' z' R U R' F R' F' R y' R U R' F R' F' R d 3d' d R U R' F R' F' R 3d d' U' 6d' R U' R' 3u u' y' R U R' F R' F' R u' u z' x' 4r' 5r U x' F r2 x' z' R U R' F R' F' R u' u' z x U x' D' 6d' D 6r U' 6r' y R U R2' U' R D' R U' R' U L' U L D' U L' U L U' L' U L D U' U' R U R' U R U' U' R' U R2' D' R U' U' R' D R U' U' R U' U' y2 x'",
|
|
193
|
+
},
|
|
194
|
+
];
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reverses the direction of a movement or rotation
|
|
3
|
+
* @template {Movement | Rotation} T
|
|
4
|
+
* @param {T} action
|
|
5
|
+
* @returns {T}
|
|
6
|
+
* */
|
|
7
|
+
export function reverse<T extends Movement | Rotation>(action: T): T;
|
|
8
|
+
/**
|
|
9
|
+
* Translates notation meant for a 3x3 into notation a big cube. This is so that 3x3 algorithms can be used on a big cube if desired. eg. for a 6x6 r -> 5r
|
|
10
|
+
* @template {Movement | Rotation} T
|
|
11
|
+
* @param {T} action
|
|
12
|
+
* @param {CubeType} cubeType
|
|
13
|
+
* @returns {T}
|
|
14
|
+
* */
|
|
15
|
+
export function translate<T extends Movement | Rotation>(action: T, cubeType: CubeType): T;
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param {string} rotation
|
|
19
|
+
*/
|
|
20
|
+
export function IsRotation(rotation: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @param {string} movement
|
|
24
|
+
* @return {boolean}
|
|
25
|
+
*/
|
|
26
|
+
export function isMovement(movement: string): boolean;
|
|
1
27
|
/**
|
|
2
28
|
* @typedef {typeof Movements.Single[keyof typeof Movements.Single]} SingleMove
|
|
3
29
|
* @typedef {typeof Movements.Wide[keyof typeof Movements.Wide]} WideMove
|
|
@@ -70,7 +96,7 @@ export const Movements: Readonly<{
|
|
|
70
96
|
u2: "u2";
|
|
71
97
|
uP: "u'";
|
|
72
98
|
Dw: "Dw";
|
|
73
|
-
Dw2: "
|
|
99
|
+
Dw2: "Dw2";
|
|
74
100
|
DwP: "Dw'";
|
|
75
101
|
d: "d";
|
|
76
102
|
d2: "d2";
|
|
@@ -356,6 +382,17 @@ export const Movements: Readonly<{
|
|
|
356
382
|
D2: "6D2";
|
|
357
383
|
DP: "6D'";
|
|
358
384
|
}>;
|
|
385
|
+
/**
|
|
386
|
+
* Build a layer-range move for big-cube notation. e.g. Movements.Range(2, 4, Movements.Wide.Rw) returns '2-4Rw',
|
|
387
|
+
* meaning "rotate layers 2 through 4 from the right face." Accepts wide moves (`Movements.Wide.*`), face
|
|
388
|
+
* moves (`Movements.Single.{R,L,U,D,F,B}` and modifiers), and slice moves (`Movements.Single.{M,E,S}` and
|
|
389
|
+
* modifiers). Already-prefixed moves (`2R`, `2-4Rw`) are rejected.
|
|
390
|
+
* @param {number} lower
|
|
391
|
+
* @param {number} upper
|
|
392
|
+
* @param {WideMove | SingleMove} baseMove
|
|
393
|
+
* @returns {Movement}
|
|
394
|
+
*/
|
|
395
|
+
Range: (lower: number, upper: number, baseMove: WideMove | SingleMove) => Movement;
|
|
359
396
|
}>;
|
|
360
397
|
/**
|
|
361
398
|
* @typedef {typeof Rotations[keyof typeof Rotations]} Rotation
|
|
@@ -393,49 +430,13 @@ export const CubeTypes: Readonly<{
|
|
|
393
430
|
Six: "Six";
|
|
394
431
|
Seven: "Seven";
|
|
395
432
|
}>;
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
Match: "match";
|
|
404
|
-
}>;
|
|
405
|
-
/**
|
|
406
|
-
* @typedef {typeof FaceColours [keyof typeof FaceColours]} FaceColour
|
|
407
|
-
*/
|
|
408
|
-
export const FaceColours: Readonly<{
|
|
409
|
-
U: "white";
|
|
410
|
-
D: "yellow";
|
|
411
|
-
L: "#fc9a05";
|
|
412
|
-
R: "red";
|
|
413
|
-
F: "#2cbf13";
|
|
414
|
-
B: "blue";
|
|
415
|
-
}>;
|
|
416
|
-
/**
|
|
417
|
-
* @typedef {typeof PeekTypes [keyof typeof PeekTypes]} PeekType
|
|
418
|
-
*/
|
|
419
|
-
export const PeekTypes: Readonly<{
|
|
420
|
-
Horizontal: "horizontal";
|
|
421
|
-
Vertical: "vertical";
|
|
422
|
-
Right: "right";
|
|
423
|
-
Left: "left";
|
|
424
|
-
Up: "up";
|
|
425
|
-
Down: "down";
|
|
426
|
-
RightUp: "rightUp";
|
|
427
|
-
RightDown: "rightDown";
|
|
428
|
-
LeftUp: "leftUp";
|
|
429
|
-
LeftDown: "leftDown";
|
|
430
|
-
}>;
|
|
431
|
-
/**
|
|
432
|
-
* @typedef {typeof PeekStates [keyof typeof PeekStates]} PeekState
|
|
433
|
-
*/
|
|
434
|
-
export const PeekStates: Readonly<{
|
|
435
|
-
RightUp: "rightUp";
|
|
436
|
-
RightDown: "rightDown";
|
|
437
|
-
LeftUp: "leftUp";
|
|
438
|
-
LeftDown: "leftDown";
|
|
433
|
+
export const LayerCount: Readonly<{
|
|
434
|
+
Two: 2;
|
|
435
|
+
Three: 3;
|
|
436
|
+
Four: 4;
|
|
437
|
+
Five: 5;
|
|
438
|
+
Six: 6;
|
|
439
|
+
Seven: 7;
|
|
439
440
|
}>;
|
|
440
441
|
export type SingleMove = (typeof Movements.Single)[keyof typeof Movements.Single];
|
|
441
442
|
export type WideMove = (typeof Movements.Wide)[keyof typeof Movements.Wide];
|
|
@@ -448,7 +449,3 @@ export type Movement = SingleMove | WideMove | TwoMove | ThreeMove | FourMove |
|
|
|
448
449
|
export type Rotation = (typeof Rotations)[keyof typeof Rotations];
|
|
449
450
|
export type Face = (typeof Faces)[keyof typeof Faces];
|
|
450
451
|
export type CubeType = (typeof CubeTypes)[keyof typeof CubeTypes];
|
|
451
|
-
export type AnimationStyle = (typeof AnimationStyles)[keyof typeof AnimationStyles];
|
|
452
|
-
export type FaceColour = (typeof FaceColours)[keyof typeof FaceColours];
|
|
453
|
-
export type PeekType = (typeof PeekTypes)[keyof typeof PeekTypes];
|
|
454
|
-
export type PeekState = (typeof PeekStates)[keyof typeof PeekStates];
|