cubing 0.29.2 → 0.31.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/dist/esm/alg/index.js +1 -2
- package/dist/esm/bluetooth/index.js +8 -9
- package/dist/esm/bluetooth/index.js.map +2 -2
- package/dist/esm/{chunk-RH4WZIGC.js → chunk-5QXVR3FK.js} +2 -2
- package/dist/esm/{chunk-RH4WZIGC.js.map → chunk-5QXVR3FK.js.map} +0 -0
- package/dist/esm/{chunk-WNZXZ4MW.js → chunk-7LJHXZJM.js} +6 -8
- package/dist/esm/{chunk-WNZXZ4MW.js.map → chunk-7LJHXZJM.js.map} +2 -2
- package/dist/esm/{chunk-OT7AIIFN.js → chunk-CUIME76I.js} +3 -3
- package/dist/esm/chunk-CUIME76I.js.map +7 -0
- package/dist/esm/{chunk-NUMCMGLU.js → chunk-J5IQUWXC.js} +2 -2
- package/dist/esm/{chunk-NUMCMGLU.js.map → chunk-J5IQUWXC.js.map} +0 -0
- package/dist/esm/{chunk-J5KJ2WWA.js → chunk-JQLCWEVU.js} +44 -31
- package/dist/esm/chunk-JQLCWEVU.js.map +7 -0
- package/dist/esm/{chunk-7OIUETFU.js → chunk-RBZINRTT.js} +213 -106
- package/dist/esm/chunk-RBZINRTT.js.map +7 -0
- package/dist/esm/{chunk-EOEJDDXN.js → chunk-SNLVO6OQ.js} +256 -31
- package/dist/esm/chunk-SNLVO6OQ.js.map +7 -0
- package/dist/esm/{chunk-YD2TMJI2.js → chunk-SYSXHJ4V.js} +137 -183
- package/dist/esm/chunk-SYSXHJ4V.js.map +7 -0
- package/dist/esm/{chunk-POCUG6QW.js → chunk-UAHLC2BK.js} +3 -5
- package/dist/esm/{chunk-POCUG6QW.js.map → chunk-UAHLC2BK.js.map} +2 -2
- package/dist/esm/{chunk-RIXFKOD6.js → chunk-V67YQOIN.js} +4 -4
- package/dist/esm/{chunk-RIXFKOD6.js.map → chunk-V67YQOIN.js.map} +2 -2
- package/dist/esm/kpuzzle/index.js +2 -3
- package/dist/esm/notation/index.js +2 -3
- package/dist/esm/protocol/index.js +4 -5
- package/dist/esm/puzzle-geometry/index.js +6 -19
- package/dist/esm/puzzle-geometry/index.js.map +2 -2
- package/dist/esm/puzzles/index.js +4 -5
- package/dist/esm/{puzzles-dynamic-3x3x3-KIG5A6QR.js → puzzles-dynamic-3x3x3-ZKMODX2P.js} +1 -3
- package/dist/esm/{puzzles-dynamic-3x3x3-KIG5A6QR.js.map → puzzles-dynamic-3x3x3-ZKMODX2P.js.map} +1 -1
- package/dist/esm/{puzzles-dynamic-4x4x4-PEDAPUZK.js → puzzles-dynamic-4x4x4-DT42HVIY.js} +1 -3
- package/dist/esm/{puzzles-dynamic-4x4x4-PEDAPUZK.js.map → puzzles-dynamic-4x4x4-DT42HVIY.js.map} +1 -1
- package/dist/esm/{puzzles-dynamic-side-events-3K26JTOG.js → puzzles-dynamic-side-events-HMUBMHA5.js} +1 -3
- package/dist/esm/{puzzles-dynamic-side-events-3K26JTOG.js.map → puzzles-dynamic-side-events-HMUBMHA5.js.map} +1 -1
- package/dist/esm/{puzzles-dynamic-unofficial-WWJ4NJMX.js → puzzles-dynamic-unofficial-QXSDLTK5.js} +1 -3
- package/dist/esm/{puzzles-dynamic-unofficial-WWJ4NJMX.js.map → puzzles-dynamic-unofficial-QXSDLTK5.js.map} +1 -1
- package/dist/esm/scramble/index.js +2 -3
- package/dist/esm/search/index.js +6 -7
- package/dist/esm/{search-dynamic-sgs-side-events-AE3TLLPA.js → search-dynamic-sgs-side-events-KVUAIBGE.js} +6 -7
- package/dist/esm/{search-dynamic-sgs-side-events-AE3TLLPA.js.map → search-dynamic-sgs-side-events-KVUAIBGE.js.map} +1 -1
- package/dist/esm/{search-dynamic-sgs-unofficial-JUXMNMNO.js → search-dynamic-sgs-unofficial-7ICOL4T7.js} +6 -7
- package/dist/esm/{search-dynamic-sgs-unofficial-JUXMNMNO.js.map → search-dynamic-sgs-unofficial-7ICOL4T7.js.map} +1 -1
- package/dist/esm/{search-dynamic-solve-3x3x3-SA75BI5I.js → search-dynamic-solve-3x3x3-DDVSUP2C.js} +275 -292
- package/dist/esm/search-dynamic-solve-3x3x3-DDVSUP2C.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-4x4x4-ALKH43DT.js → search-dynamic-solve-4x4x4-GGDX7YYZ.js} +6 -7
- package/dist/esm/{search-dynamic-solve-4x4x4-ALKH43DT.js.map → search-dynamic-solve-4x4x4-GGDX7YYZ.js.map} +1 -1
- package/dist/esm/{search-dynamic-solve-fto-5B5ZESQC.js → search-dynamic-solve-fto-MA4X6JEE.js} +6 -17
- package/dist/esm/search-dynamic-solve-fto-MA4X6JEE.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-kilominx-OY4VIARG.js → search-dynamic-solve-kilominx-TVKK4KDH.js} +2 -3
- package/dist/esm/search-dynamic-solve-kilominx-TVKK4KDH.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-master_tetraminx-GE2BTRGI.js → search-dynamic-solve-master_tetraminx-YKINTRUU.js} +4 -11
- package/dist/esm/search-dynamic-solve-master_tetraminx-YKINTRUU.js.map +7 -0
- package/dist/esm/{search-dynamic-solve-sq1-W6PSSLR6.js → search-dynamic-solve-sq1-W33UXTDZ.js} +1 -2
- package/dist/esm/{search-dynamic-solve-sq1-W6PSSLR6.js.map → search-dynamic-solve-sq1-W33UXTDZ.js.map} +1 -1
- package/dist/esm/{search-worker-inside-generated-string-7HYFSSPW.js → search-worker-inside-generated-string-I4T4KADX.js} +28 -30
- package/dist/esm/search-worker-inside-generated-string-I4T4KADX.js.map +7 -0
- package/dist/esm/{search-worker-js-entry-SNUA3SOE.js → search-worker-js-entry-KWGCJXGS.js} +34 -41
- package/dist/esm/search-worker-js-entry-KWGCJXGS.js.map +7 -0
- package/dist/esm/{search-worker-ts-entry-LNB7KNFY.js → search-worker-ts-entry-J533AM5E.js} +2 -3
- package/dist/esm/{search-worker-ts-entry-LNB7KNFY.js.map → search-worker-ts-entry-J533AM5E.js.map} +1 -1
- package/dist/esm/stream/index.js +1 -2
- package/dist/esm/stream/index.js.map +2 -2
- package/dist/esm/twisty/index.js +450 -254
- package/dist/esm/twisty/index.js.map +4 -4
- package/dist/esm/{twisty-dynamic-3d-PU74EKRA.js → twisty-dynamic-3d-OAYMJ6OD.js} +125 -107
- package/dist/esm/twisty-dynamic-3d-OAYMJ6OD.js.map +7 -0
- package/dist/types/{Alg-137fb0d5.d.ts → Alg-60b374e8.d.ts} +25 -26
- package/dist/types/{KState-a73111d7.d.ts → KState-958b873c.d.ts} +1 -1
- package/dist/types/{TwizzleLink-ce20e840.d.ts → TwizzleLink-e873f6e5.d.ts} +77 -54
- package/dist/types/alg/index.d.ts +31 -9
- package/dist/types/bluetooth/index.d.ts +4 -4
- package/dist/types/{bluetooth-puzzle-8a678993.d.ts → bluetooth-puzzle-cc8eeaae.d.ts} +2 -2
- package/dist/types/kpuzzle/index.d.ts +2 -2
- package/dist/types/notation/index.d.ts +1 -1
- package/dist/types/{outside-e55f28a0.d.ts → outside-15f39b79.d.ts} +2 -2
- package/dist/types/{parseAlg-a28f7568.d.ts → parseAlg-3c77c4b3.d.ts} +1 -1
- package/dist/types/protocol/index.d.ts +2 -2
- package/dist/types/puzzle-geometry/index.d.ts +3 -3
- package/dist/types/puzzles/index.d.ts +5 -5
- package/dist/types/scramble/index.d.ts +3 -3
- package/dist/types/search/index.d.ts +3 -3
- package/dist/types/stream/index.d.ts +3 -3
- package/dist/types/twisty/index.d.ts +6 -6
- package/package.json +3 -2
- package/dist/esm/chunk-7OIUETFU.js.map +0 -7
- package/dist/esm/chunk-EOEJDDXN.js.map +0 -7
- package/dist/esm/chunk-J5KJ2WWA.js.map +0 -7
- package/dist/esm/chunk-OT7AIIFN.js.map +0 -7
- package/dist/esm/chunk-SBZRVSPK.js +0 -30
- package/dist/esm/chunk-SBZRVSPK.js.map +0 -7
- package/dist/esm/chunk-YD2TMJI2.js.map +0 -7
- package/dist/esm/search-dynamic-solve-3x3x3-SA75BI5I.js.map +0 -7
- package/dist/esm/search-dynamic-solve-fto-5B5ZESQC.js.map +0 -7
- package/dist/esm/search-dynamic-solve-kilominx-OY4VIARG.js.map +0 -7
- package/dist/esm/search-dynamic-solve-master_tetraminx-GE2BTRGI.js.map +0 -7
- package/dist/esm/search-worker-inside-generated-string-7HYFSSPW.js.map +0 -7
- package/dist/esm/search-worker-js-entry-SNUA3SOE.js.map +0 -7
- package/dist/esm/twisty-dynamic-3d-PU74EKRA.js.map +0 -7
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__privateAdd,
|
|
3
|
-
__privateGet,
|
|
4
|
-
__privateMethod,
|
|
5
|
-
__privateSet
|
|
6
|
-
} from "./chunk-SBZRVSPK.js";
|
|
7
|
-
|
|
8
1
|
// src/cubing/alg/common.ts
|
|
9
2
|
var writeAlgDebugField = false;
|
|
10
3
|
var Comparable = class {
|
|
@@ -958,59 +951,182 @@ var TraversalUp = class extends TraversalDownUp {
|
|
|
958
951
|
return mustBeAlgNode(this.traverseAlgNode(algNode));
|
|
959
952
|
}
|
|
960
953
|
};
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
954
|
+
|
|
955
|
+
// src/cubing/alg/simplify/options.ts
|
|
956
|
+
var DEFAULT_DIRECTIONAL = "any-direction";
|
|
957
|
+
var DEFAULT_MOD_WRAP = "canonical-centered";
|
|
958
|
+
var AppendOptionsHelper = class {
|
|
959
|
+
constructor(config = {}) {
|
|
960
|
+
this.config = config;
|
|
961
|
+
}
|
|
962
|
+
cancelQuantum() {
|
|
963
|
+
const { cancel } = this.config;
|
|
964
|
+
if (cancel === true) {
|
|
965
|
+
return DEFAULT_DIRECTIONAL;
|
|
966
|
+
}
|
|
967
|
+
if (cancel === false) {
|
|
968
|
+
return "none";
|
|
969
|
+
}
|
|
970
|
+
return cancel?.directional ?? "none";
|
|
967
971
|
}
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
+
cancelAny() {
|
|
973
|
+
return this.config.cancel && this.cancelQuantum() !== "none";
|
|
974
|
+
}
|
|
975
|
+
cancelPuzzleSpecificModWrap() {
|
|
976
|
+
const { cancel } = this.config;
|
|
977
|
+
if (cancel === true || cancel === false) {
|
|
978
|
+
return DEFAULT_MOD_WRAP;
|
|
972
979
|
}
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
980
|
+
return cancel?.puzzleSpecificModWrap ?? DEFAULT_MOD_WRAP;
|
|
981
|
+
}
|
|
982
|
+
puzzleSpecificSimplifyOptions() {
|
|
983
|
+
return this.config.puzzleLoader?.puzzleSpecificSimplifyOptions ?? this.config.puzzleSpecificSimplifyOptions;
|
|
984
|
+
}
|
|
985
|
+
};
|
|
986
|
+
|
|
987
|
+
// src/cubing/alg/simplify/append.ts
|
|
988
|
+
function areSameDirection(direction, move2) {
|
|
989
|
+
return direction * Math.sign(move2.amount) >= 0;
|
|
990
|
+
}
|
|
991
|
+
function offsetMod(x, positiveMod, offset) {
|
|
992
|
+
return ((x - offset) % positiveMod + positiveMod) % positiveMod + offset;
|
|
993
|
+
}
|
|
994
|
+
function experimentalAppendMove(alg, addedMove, options) {
|
|
995
|
+
const optionsHelper = new AppendOptionsHelper(options);
|
|
996
|
+
let outputPrefix = Array.from(alg.childAlgNodes());
|
|
997
|
+
let outputSuffix = [addedMove];
|
|
998
|
+
function output() {
|
|
999
|
+
return new Alg([...outputPrefix, ...outputSuffix]);
|
|
1000
|
+
}
|
|
1001
|
+
function modMove(move) {
|
|
1002
|
+
if (optionsHelper.cancelPuzzleSpecificModWrap() === "none") {
|
|
1003
|
+
return move;
|
|
1004
|
+
}
|
|
1005
|
+
const quantumMoveOrder = optionsHelper.puzzleSpecificSimplifyOptions()?.quantumMoveOrder;
|
|
1006
|
+
if (!quantumMoveOrder) {
|
|
1007
|
+
return move;
|
|
1008
|
+
}
|
|
1009
|
+
const mod = quantumMoveOrder(addedMove.quantum);
|
|
1010
|
+
let offset;
|
|
1011
|
+
switch (optionsHelper.cancelPuzzleSpecificModWrap()) {
|
|
1012
|
+
case "gravity": {
|
|
1013
|
+
offset = -Math.floor((mod - (move.amount < 0 ? 0 : 1)) / 2);
|
|
1014
|
+
break;
|
|
1015
|
+
}
|
|
1016
|
+
case "canonical-centered": {
|
|
1017
|
+
offset = -Math.floor((mod - 1) / 2);
|
|
1018
|
+
break;
|
|
1019
|
+
}
|
|
1020
|
+
case "canonical-positive": {
|
|
1021
|
+
offset = 0;
|
|
1022
|
+
break;
|
|
1023
|
+
}
|
|
1024
|
+
case "preserve-sign": {
|
|
1025
|
+
offset = move.amount < 0 ? 1 - mod : 0;
|
|
1026
|
+
break;
|
|
1027
|
+
}
|
|
1028
|
+
default: {
|
|
1029
|
+
throw new Error("Unknown mod wrap");
|
|
981
1030
|
}
|
|
982
|
-
const newMove = new Move(move.quantum, newAmount);
|
|
983
|
-
newAlgNodes.push(newMove);
|
|
984
|
-
lastAlgNode = newMove;
|
|
985
|
-
return true;
|
|
986
1031
|
}
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1032
|
+
let offsetAmount = offsetMod(move.amount, mod, offset);
|
|
1033
|
+
return move.modified({ amount: offsetAmount });
|
|
1034
|
+
}
|
|
1035
|
+
if (optionsHelper.cancelAny()) {
|
|
1036
|
+
let canCancelMoveBasedOnQuantum;
|
|
1037
|
+
const axis = optionsHelper.puzzleSpecificSimplifyOptions()?.axis;
|
|
1038
|
+
if (axis) {
|
|
1039
|
+
canCancelMoveBasedOnQuantum = (move) => axis.areQuantumMovesSameAxis(addedMove.quantum, move.quantum);
|
|
1040
|
+
} else {
|
|
1041
|
+
const newMoveQuantumString = addedMove.quantum.toString();
|
|
1042
|
+
canCancelMoveBasedOnQuantum = (move) => move.quantum.toString() === newMoveQuantumString;
|
|
1043
|
+
}
|
|
1044
|
+
const sameDirectionOnly = optionsHelper.cancelQuantum() === "same-direction";
|
|
1045
|
+
const quantumDirections = /* @__PURE__ */ new Map();
|
|
1046
|
+
quantumDirections.set(
|
|
1047
|
+
addedMove.quantum.toString(),
|
|
1048
|
+
Math.sign(addedMove.amount)
|
|
1049
|
+
);
|
|
1050
|
+
let i;
|
|
1051
|
+
for (i = outputPrefix.length - 1; i >= 0; i--) {
|
|
1052
|
+
const move = outputPrefix[i].as(Move);
|
|
1053
|
+
if (!move) {
|
|
1054
|
+
break;
|
|
1055
|
+
}
|
|
1056
|
+
if (!canCancelMoveBasedOnQuantum(move)) {
|
|
1057
|
+
break;
|
|
1058
|
+
}
|
|
1059
|
+
const quantumKey = move.quantum.toString();
|
|
1060
|
+
if (sameDirectionOnly) {
|
|
1061
|
+
const existingQuantumDirectionOnAxis = quantumDirections.get(quantumKey);
|
|
1062
|
+
if (existingQuantumDirectionOnAxis && !areSameDirection(existingQuantumDirectionOnAxis, move)) {
|
|
1063
|
+
break;
|
|
1002
1064
|
}
|
|
1065
|
+
quantumDirections.set(quantumKey, Math.sign(move.amount));
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
const suffix = [...outputPrefix.splice(i + 1), addedMove];
|
|
1069
|
+
if (axis) {
|
|
1070
|
+
outputSuffix = axis.simplifySameAxisMoves(
|
|
1071
|
+
suffix,
|
|
1072
|
+
optionsHelper.cancelPuzzleSpecificModWrap() !== "none"
|
|
1073
|
+
);
|
|
1074
|
+
} else {
|
|
1075
|
+
let amount = suffix.reduce(
|
|
1076
|
+
(sum, move) => sum + move.amount,
|
|
1077
|
+
0
|
|
1078
|
+
);
|
|
1079
|
+
if (quantumDirections.size !== 1) {
|
|
1080
|
+
throw new Error(
|
|
1081
|
+
"Internal error: multiple quantums when one was expected"
|
|
1082
|
+
);
|
|
1003
1083
|
}
|
|
1084
|
+
outputSuffix = [new Move(addedMove.quantum, amount)];
|
|
1004
1085
|
}
|
|
1005
|
-
|
|
1086
|
+
}
|
|
1087
|
+
outputSuffix = outputSuffix.map((m) => modMove(m)).filter((move) => move.amount !== 0);
|
|
1088
|
+
return output();
|
|
1089
|
+
}
|
|
1090
|
+
function experimentalAppendNode(alg, leaf, options) {
|
|
1091
|
+
const maybeMove = leaf.as(Move);
|
|
1092
|
+
if (maybeMove) {
|
|
1093
|
+
return experimentalAppendMove(alg, maybeMove, options);
|
|
1094
|
+
} else {
|
|
1095
|
+
return new Alg([...alg.childAlgNodes(), leaf]);
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
// src/cubing/alg/simplify/simplify.ts
|
|
1100
|
+
var Simplify = class extends TraversalDownUp {
|
|
1101
|
+
#newPlaceholderAssociationsMap;
|
|
1102
|
+
#newPlaceholderAssociations() {
|
|
1103
|
+
return this.#newPlaceholderAssociationsMap ?? (this.#newPlaceholderAssociationsMap = /* @__PURE__ */ new Map());
|
|
1104
|
+
}
|
|
1105
|
+
#descendOptions(options) {
|
|
1106
|
+
return {
|
|
1107
|
+
...options,
|
|
1006
1108
|
depth: options.depth ? options.depth - 1 : null
|
|
1007
1109
|
};
|
|
1110
|
+
}
|
|
1111
|
+
*traverseAlg(alg, options) {
|
|
1112
|
+
if (options.depth === 0) {
|
|
1113
|
+
yield* alg.childAlgNodes();
|
|
1114
|
+
return;
|
|
1115
|
+
}
|
|
1116
|
+
let output = [];
|
|
1117
|
+
const newOptions = this.#descendOptions(options);
|
|
1008
1118
|
for (const algNode of alg.childAlgNodes()) {
|
|
1009
|
-
for (const
|
|
1010
|
-
|
|
1119
|
+
for (const traversedNode of this.traverseAlgNode(algNode, newOptions)) {
|
|
1120
|
+
output = Array.from(
|
|
1121
|
+
experimentalAppendNode(
|
|
1122
|
+
new Alg(output),
|
|
1123
|
+
traversedNode,
|
|
1124
|
+
newOptions
|
|
1125
|
+
).childAlgNodes()
|
|
1126
|
+
);
|
|
1011
1127
|
}
|
|
1012
1128
|
}
|
|
1013
|
-
for (const newAlgNode of
|
|
1129
|
+
for (const newAlgNode of output) {
|
|
1014
1130
|
yield newAlgNode;
|
|
1015
1131
|
}
|
|
1016
1132
|
}
|
|
@@ -1019,14 +1135,17 @@ var _Simplify = class extends TraversalDownUp {
|
|
|
1019
1135
|
yield grouping;
|
|
1020
1136
|
return;
|
|
1021
1137
|
}
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
}
|
|
1138
|
+
if (grouping.amount === 0) {
|
|
1139
|
+
return;
|
|
1140
|
+
}
|
|
1025
1141
|
const newGrouping = new Grouping(
|
|
1026
|
-
this.traverseAlg(grouping.alg,
|
|
1142
|
+
this.traverseAlg(grouping.alg, this.#descendOptions(options)),
|
|
1027
1143
|
grouping.amount
|
|
1028
1144
|
);
|
|
1029
|
-
|
|
1145
|
+
if (newGrouping.alg.experimentalIsEmpty()) {
|
|
1146
|
+
return;
|
|
1147
|
+
}
|
|
1148
|
+
const newPlaceholder = this.#newPlaceholderAssociations().get(grouping);
|
|
1030
1149
|
if (newPlaceholder) {
|
|
1031
1150
|
newGrouping.experimentalNISSPlaceholder = newPlaceholder;
|
|
1032
1151
|
newPlaceholder.experimentalNISSGrouping = newGrouping;
|
|
@@ -1036,36 +1155,61 @@ var _Simplify = class extends TraversalDownUp {
|
|
|
1036
1155
|
*traverseMove(move, _options) {
|
|
1037
1156
|
yield move;
|
|
1038
1157
|
}
|
|
1158
|
+
#doChildrenCommute(A, B, options) {
|
|
1159
|
+
if (A.experimentalNumChildAlgNodes() === 1 && B.experimentalNumChildAlgNodes() === 1) {
|
|
1160
|
+
const aMove = Array.from(A.childAlgNodes())[0]?.as(Move);
|
|
1161
|
+
const bMove = Array.from(B.childAlgNodes())[0]?.as(Move);
|
|
1162
|
+
if (!(aMove && bMove)) {
|
|
1163
|
+
return false;
|
|
1164
|
+
}
|
|
1165
|
+
if (bMove.quantum.isIdentical(aMove.quantum)) {
|
|
1166
|
+
return true;
|
|
1167
|
+
}
|
|
1168
|
+
const appendOptionsHelper = new AppendOptionsHelper(options);
|
|
1169
|
+
if (appendOptionsHelper.puzzleSpecificSimplifyOptions()?.axis?.areQuantumMovesSameAxis(aMove.quantum, bMove.quantum)) {
|
|
1170
|
+
return true;
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
return false;
|
|
1174
|
+
}
|
|
1039
1175
|
*traverseCommutator(commutator, options) {
|
|
1040
1176
|
if (options.depth === 0) {
|
|
1041
1177
|
yield commutator;
|
|
1042
1178
|
return;
|
|
1043
1179
|
}
|
|
1044
|
-
const newOptions =
|
|
1045
|
-
|
|
1046
|
-
};
|
|
1047
|
-
yield new Commutator(
|
|
1180
|
+
const newOptions = this.#descendOptions(options);
|
|
1181
|
+
const newCommutator = new Commutator(
|
|
1048
1182
|
this.traverseAlg(commutator.A, newOptions),
|
|
1049
1183
|
this.traverseAlg(commutator.B, newOptions)
|
|
1050
1184
|
);
|
|
1185
|
+
if (newCommutator.A.experimentalIsEmpty() || newCommutator.B.experimentalIsEmpty() || newCommutator.A.isIdentical(newCommutator.B) || newCommutator.A.isIdentical(newCommutator.B.invert()) || this.#doChildrenCommute(newCommutator.A, newCommutator.B, options)) {
|
|
1186
|
+
return;
|
|
1187
|
+
}
|
|
1188
|
+
yield newCommutator;
|
|
1051
1189
|
}
|
|
1052
1190
|
*traverseConjugate(conjugate, options) {
|
|
1053
1191
|
if (options.depth === 0) {
|
|
1054
1192
|
yield conjugate;
|
|
1055
1193
|
return;
|
|
1056
1194
|
}
|
|
1057
|
-
const newOptions =
|
|
1058
|
-
|
|
1059
|
-
};
|
|
1060
|
-
yield new Conjugate(
|
|
1195
|
+
const newOptions = this.#descendOptions(options);
|
|
1196
|
+
const newConjugate = new Conjugate(
|
|
1061
1197
|
this.traverseAlg(conjugate.A, newOptions),
|
|
1062
1198
|
this.traverseAlg(conjugate.B, newOptions)
|
|
1063
1199
|
);
|
|
1200
|
+
if (newConjugate.B.experimentalIsEmpty()) {
|
|
1201
|
+
return;
|
|
1202
|
+
}
|
|
1203
|
+
if (newConjugate.A.experimentalIsEmpty() || newConjugate.A.isIdentical(newConjugate.B) || newConjugate.A.isIdentical(newConjugate.B.invert()) || this.#doChildrenCommute(newConjugate.A, newConjugate.B, options)) {
|
|
1204
|
+
yield* conjugate.B.childAlgNodes();
|
|
1205
|
+
return;
|
|
1206
|
+
}
|
|
1207
|
+
yield newConjugate;
|
|
1064
1208
|
}
|
|
1065
1209
|
*traversePause(pause, _options) {
|
|
1066
1210
|
if (pause.experimentalNISSGrouping) {
|
|
1067
1211
|
const newPause = new Pause();
|
|
1068
|
-
|
|
1212
|
+
this.#newPlaceholderAssociations().set(
|
|
1069
1213
|
pause.experimentalNISSGrouping,
|
|
1070
1214
|
newPause
|
|
1071
1215
|
);
|
|
@@ -1081,23 +1225,6 @@ var _Simplify = class extends TraversalDownUp {
|
|
|
1081
1225
|
yield comment;
|
|
1082
1226
|
}
|
|
1083
1227
|
};
|
|
1084
|
-
var Simplify = _Simplify;
|
|
1085
|
-
_newPlaceholderAssociationsMap = new WeakMap();
|
|
1086
|
-
_newPlaceholderAssociations = new WeakSet();
|
|
1087
|
-
newPlaceholderAssociations_fn = function() {
|
|
1088
|
-
return __privateGet(this, _newPlaceholderAssociationsMap) ?? __privateSet(this, _newPlaceholderAssociationsMap, /* @__PURE__ */ new Map());
|
|
1089
|
-
};
|
|
1090
|
-
_newAmount = new WeakSet();
|
|
1091
|
-
newAmount_fn = function(move, deltaAmount, options) {
|
|
1092
|
-
let newAmount = move.amount + deltaAmount;
|
|
1093
|
-
if (options?.quantumMoveOrder) {
|
|
1094
|
-
const order = options.quantumMoveOrder(move.quantum);
|
|
1095
|
-
const min = Math.floor(order / 2) + 1 - order;
|
|
1096
|
-
newAmount = (newAmount % order + order - min) % order + min;
|
|
1097
|
-
}
|
|
1098
|
-
return newAmount;
|
|
1099
|
-
};
|
|
1100
|
-
__privateAdd(Simplify, _newAmount);
|
|
1101
1228
|
var simplifyInstance = new Simplify();
|
|
1102
1229
|
var simplify = simplifyInstance.traverseAlg.bind(simplifyInstance);
|
|
1103
1230
|
|
|
@@ -1229,9 +1356,12 @@ var Alg = class extends AlgCommon {
|
|
|
1229
1356
|
}
|
|
1230
1357
|
return output;
|
|
1231
1358
|
}
|
|
1232
|
-
|
|
1359
|
+
experimentalSimplify(options) {
|
|
1233
1360
|
return new Alg(simplify(this, options ?? {}));
|
|
1234
1361
|
}
|
|
1362
|
+
simplify(options) {
|
|
1363
|
+
return this.experimentalSimplify(options);
|
|
1364
|
+
}
|
|
1235
1365
|
};
|
|
1236
1366
|
function spaceBetween(u1, u2) {
|
|
1237
1367
|
if (u1.is(Newline) || u2.is(Newline)) {
|
|
@@ -1491,29 +1621,6 @@ function experimentalAlgCubingNetLink(options) {
|
|
|
1491
1621
|
return url.toString();
|
|
1492
1622
|
}
|
|
1493
1623
|
|
|
1494
|
-
// src/cubing/alg/operation.ts
|
|
1495
|
-
function experimentalAppendMove(alg, newMove, options) {
|
|
1496
|
-
const oldAlgNodes = Array.from(alg.childAlgNodes());
|
|
1497
|
-
const oldLastMove = oldAlgNodes[oldAlgNodes.length - 1];
|
|
1498
|
-
if (options?.coalesce && oldLastMove && oldLastMove.quantum && oldLastMove.quantum.isIdentical(newMove.quantum)) {
|
|
1499
|
-
const newAlgNodes = oldAlgNodes.slice(0, oldAlgNodes.length - 1);
|
|
1500
|
-
let newAmount = oldLastMove.amount + newMove.amount;
|
|
1501
|
-
const mod = options?.mod;
|
|
1502
|
-
if (mod) {
|
|
1503
|
-
newAmount = (newAmount % mod + mod) % mod;
|
|
1504
|
-
if (newAmount * 2 > mod) {
|
|
1505
|
-
newAmount -= mod;
|
|
1506
|
-
}
|
|
1507
|
-
}
|
|
1508
|
-
if (newAmount !== 0) {
|
|
1509
|
-
newAlgNodes.push(oldLastMove.modified({ amount: newAmount }));
|
|
1510
|
-
}
|
|
1511
|
-
return new Alg(newAlgNodes);
|
|
1512
|
-
} else {
|
|
1513
|
-
return new Alg([...oldAlgNodes, newMove]);
|
|
1514
|
-
}
|
|
1515
|
-
}
|
|
1516
|
-
|
|
1517
1624
|
export {
|
|
1518
1625
|
direct,
|
|
1519
1626
|
directedGenerator,
|
|
@@ -1530,10 +1637,10 @@ export {
|
|
|
1530
1637
|
experimentalIs,
|
|
1531
1638
|
TraversalDownUp,
|
|
1532
1639
|
TraversalUp,
|
|
1640
|
+
experimentalAppendMove,
|
|
1533
1641
|
Alg,
|
|
1534
1642
|
Example,
|
|
1535
1643
|
keyToMove,
|
|
1536
|
-
experimentalAlgCubingNetLink
|
|
1537
|
-
experimentalAppendMove
|
|
1644
|
+
experimentalAlgCubingNetLink
|
|
1538
1645
|
};
|
|
1539
|
-
//# sourceMappingURL=chunk-
|
|
1646
|
+
//# sourceMappingURL=chunk-RBZINRTT.js.map
|