Compare commits

...

2 Commits

Author SHA1 Message Date
074878ee9f change settings 2024-09-12 17:05:53 +03:00
e3b065ff53 this never worked lol 2024-08-31 10:18:44 +03:00
4 changed files with 55 additions and 16 deletions

View File

@ -23,7 +23,7 @@ from typing import List, Any, Generator, Dict
SOLUTIONS_TO_EVAL = 1000
SOLUTIONS_TO_SHOW = 3
PRUNE = 10
PRUNE = 11
SOLVE = 7
@ -71,7 +71,7 @@ def main():
# list(EOLROrientation), EOLR_PERMUTATIONS
# )
eolrb_states, n_states = eolrb_states_generator(
[EOLROrientation.OneOne], EOLR_PERMUTATIONS
list(EOLROrientation), EOLR_PERMUTATIONS
)
for i, (eolrb_cube, ori, perm, pre_auf) in enumerate(eolrb_states):
print(

View File

@ -15,7 +15,7 @@ def main():
continue
if case.startswith("Solved"):
continue
if not case.startswith("OneOne"):
if "Arrow" in case:
continue
print(f'{case}: "{scramble['alg']}"')
covered_cases.add(scramble["raw_alg"])

View File

@ -211,9 +211,6 @@ def condense_algorithm(moves: List[str]) -> List[str]:
return result
reduced_moves = apply_reduction(moves)
# print(reduced_moves)
counted_moves = reduce_moves(reduced_moves)
# print(counted_moves)
reduced_alg = build_reduced_alg(counted_moves)
# print(reduced_alg)
return reduced_alg

View File

@ -1,4 +1,4 @@
from typing import Dict, List
from typing import Dict, List, Set, Tuple
import yaml
import dacite
from dataclasses import dataclass
@ -52,23 +52,61 @@ class Definitions:
finger_regrips: List[Regrip]
def build_missing_regrips(
finger_regrips: Dict[Tuple[str, str], Regrip], finger: Finger, grips: Set[str]
) -> Dict[Tuple[str, str], Regrip]:
# this might just be the worst piece of code I have ever written
# fill in missing regrips so every pair of grips has a regrip
for grip_start in grips:
for grip_end in grips:
if grip_start != grip_end:
if (grip_start, grip_end) not in finger_regrips:
# TODO: this only works for regrips which are 2 apart
possible_start_regrips = {
grips: regrip
for grips, regrip in finger_regrips.items()
if grip_start == regrip.start
}
possible_end_regrips = {
grips: regrip
for grips, regrip in finger_regrips.items()
if grip_end == regrip.end
}
for start_regrip in possible_start_regrips.values():
for end_regrip in possible_end_regrips.values():
# if start grips ends at the beginning of end grip
if start_regrip.end == end_regrip.start:
finger_regrips[(start_regrip.start, end_regrip.end)] = (
Regrip(
finger=finger.name,
start=start_regrip.start,
end=end_regrip.end,
score=start_regrip.score + end_regrip.score,
)
)
return finger_regrips
def build_regrips_from_fingers(fingers: List[Finger]) -> List[Regrip]:
regrips = []
for finger in fingers:
finger_regrips = {}
for grip_set in finger.grips.values():
# reate a dict with distances of every two elements in a list
for i in range(len(grip_set)):
for j in range(len(grip_set)):
if i != j:
finger_regrips[(grip_set[i], grip_set[j])] = Regrip(
start=grip_set[i],
end=grip_set[j],
for i, grip_start in enumerate(grip_set):
for j, grip_end in enumerate(grip_set):
if grip_start != grip_end:
finger_regrips[(grip_start, grip_end)] = Regrip(
start=grip_start,
end=grip_end,
score=abs(j - i) * finger.default_score,
finger=finger.name,
)
for regrip in finger.regrips:
finger_regrips[(regrip.start, regrip.end)] = regrip
grips = {grip for grip_set in finger.grips.values() for grip in grip_set}
finger_regrips = build_missing_regrips(finger_regrips, finger, grips)
regrips.extend(finger_regrips.values())
return regrips
@ -182,7 +220,7 @@ def generate_finger_tricks(
# TODO: think about this
# don't count the first regrip
alg[0].finger_trick.score = 0
# alg[0].finger_trick.score = 0
return alg
@ -193,7 +231,11 @@ def build_pretty_string_from_finger_tricks_with_regrips(
for finger_trick_with_regrips in finger_tricks_with_regrips:
for regrip in finger_trick_with_regrips.regrips:
elems.append(f"regrip {regrip.finger} from {regrip.start} to {regrip.end}")
elems.append(finger_trick_with_regrips.finger_trick.name)
elems.append(
f"regrip {regrip.finger} from {regrip.start} to {regrip.end} ({regrip.score})"
)
elems.append(
f"{finger_trick_with_regrips.finger_trick.name} ({finger_trick_with_regrips.finger_trick.score})"
)
return elems