aboutsummaryrefslogtreecommitdiff
path: root/practice
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-01-19 19:08:39 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2024-01-19 19:08:39 +0100
commita7c07e7f19904213ac79452cc03bc0502b0ac4d2 (patch)
tree714ebea1bf30bc53a1fe7265e09579c475e0eca4 /practice
parent1f6141d910e35c9912bcec75ba20667c38437602 (diff)
downloadscripts-a7c07e7f19904213ac79452cc03bc0502b0ac4d2.tar.gz
scripts-a7c07e7f19904213ac79452cc03bc0502b0ac4d2.zip
Some changes to practice script
Diffstat (limited to '')
-rwxr-xr-xpractice88
1 files changed, 64 insertions, 24 deletions
diff --git a/practice b/practice
index fe3976b..9f63e86 100755
--- a/practice
+++ b/practice
@@ -8,7 +8,7 @@ nissy="nissy"
8prompt="Press enter for a new scramble, Ctr+C (or Ctrl+Z) to quit:" 8prompt="Press enter for a new scramble, Ctr+C (or Ctrl+Z) to quit:"
9 9
10usage() { 10usage() {
11 echo "Usage: practice [eo|dr|htr|slice]" 11 echo "Usage: practice [eo|dr|htr|fin]"
12 exit 1 12 exit 1
13} 13}
14 14
@@ -33,10 +33,14 @@ practice_eo() {
33 nfb="$((nfbn + nfbi + nfbniss))" 33 nfb="$((nfbn + nfbi + nfbniss))"
34 nrl="$((nrln + nrli + nrlniss))" 34 nrl="$((nrln + nrli + nrlniss))"
35 nud="$((nudn + nudi + nudniss))" 35 nud="$((nudn + nudi + nudniss))"
36 n5linear="$(${nissy} solve -L -m 5 -M 5 eo -c "$scr")"
37 n5niss="$(${nissy} solve -N -m 5 -M 5 eo -c "$scr")"
38 n5nonlinear="$((n5niss - n5linear))"
36 read -r x 39 read -r x
37 echo "FB: $nfb ($nfbn normal, $nfbi inverse, $nfbniss niss)" 40 echo "FB: $nfb ($nfbn normal, $nfbi inverse, $nfbniss niss)"
38 echo "RL: $nrl ($nrln normal, $nrli inverse, $nrlniss niss)" 41 echo "RL: $nrl ($nrln normal, $nrli inverse, $nrlniss niss)"
39 echo "UD: $nud ($nudn normal, $nudi inverse, $nudniss niss)" 42 echo "UD: $nud ($nudn normal, $nudi inverse, $nudniss niss)"
43 echo "5 movers: $n5linear linear, $n5nonlinear NISS'd"
40 read -r x 44 read -r x
41 echo "$eofb" 45 echo "$eofb"
42 echo "---" 46 echo "---"
@@ -48,43 +52,49 @@ practice_eo() {
48 done 52 done
49} 53}
50 54
51dr_scramble() {
52 d="9"
53 min="4"
54 max="7"
55 while true; do
56 eo="$(tr -cd 'UDRL' < /dev/random | fold -w "$d" | head -n 1)"
57 eoinv="$(echo "$eo" | rev | sed 's/./&3/g')"
58 sol="$(${nissy} solve -p drud-eofb "$eoinv")"
59 len="$(echo "$sol" | wc -w)"
60 if [ "$len" -ge "$min" ] && [ "$len" -le "$max" ]; then
61 break
62 fi
63 done
64 ${nissy} solve drud -p -m $((d + 1)) "$eo"
65}
66
67practice_dr() { 55practice_dr() {
68 nextscr="$(dr_scramble)" 56 nextscr="$(${nissy} scramble eo)"
69 while true; do 57 while true; do
70 scr="$nextscr" 58 scr="$nextscr"
71 echo "Scramble: $scr" 59 echo "Scramble: $scr"
72 nextscr="$(dr_scramble)" 60 nextscr="$(${nissy} scramble eo)"
73 soleo="$(${nissy} solve -o -p drud-eofb "$scr")" 61 soleo="$(${nissy} solve -o -p drud-eofb "$scr")"
74 neo="$(echo "$soleo" | grep -v '^$' | wc -l)" 62 neo="$(echo "$soleo" | grep -v '^$' | wc -l)"
75 leo="$(echo "$soleo" | head -n 1 | wc -w)" 63 leo="$(echo "$soleo" | head -n 1 | wc -w)"
76 solht="$(${nissy} solve -o -p drud "$scr")" 64 solht="$(${nissy} solve -o -p drud "$scr")"
77 nht="$(echo "$soleo" | grep -v '^$' | wc -l)" 65 nht="$(echo "$solht" | grep -v '^$' | wc -l)"
78 lht="$(echo "$soleo" | head -n 1 | wc -w)" 66 lht="$(echo "$solht" | head -n 1 | wc -w)"
67 soleolr="$(${nissy} solve -o -p drrl-eofb "$scr")"
68 neolr="$(echo "$soleolr" | grep -v '^$' | wc -l)"
69 leolr="$(echo "$soleolr" | head -n 1 | wc -w)"
70 solhtlr="$(${nissy} solve -o -p drrl "$scr")"
71 nhtlr="$(echo "$solhtlr" | grep -v '^$' | wc -l)"
72 lhtlr="$(echo "$solhtlr" | head -n 1 | wc -w)"
79 read -r x 73 read -r x
80 echo "$leo moves ($neo solutions)" 74 echo "DR on U/D: $leo moves ($neo solutions)"
81 if [ "$nht" != "$neo" ] || [ "$lht" != "$leo" ]; then 75 if [ "$nht" != "$neo" ] || [ "$lht" != "$leo" ]; then
82 echo "Breaking EO: $lht moves ($nht solutions)" 76 echo "Breaking EO: $lht moves ($nht solutions)"
83 fi 77 fi
78 echo "DR on R/L: $leolr moves ($neolr solutions)"
79 if [ "$nhtlr" != "$neolr" ] || [ "$lhtlr" != "$leolr" ]; then
80 echo "Breaking EO: $lhtlr moves ($nhtlr solutions)"
81 fi
84 read -r x 82 read -r x
83 echo "On U/D:"
85 echo "$soleo" 84 echo "$soleo"
85 echo ""
86 if [ "$nht" != "$neo" ] || [ "$lht" != "$leo" ]; then 86 if [ "$nht" != "$neo" ] || [ "$lht" != "$leo" ]; then
87 echo "Breaking EO:"
87 echo "$solht" 88 echo "$solht"
89 echo ""
90 fi
91 echo "On R/L:"
92 echo "$soleolr"
93 echo ""
94 if [ "$nhtlr" != "$neolr" ] || [ "$lhtlr" != "$leolr" ]; then
95 echo "Breaking EO:"
96 echo "$solhtlr"
97 echo ""
88 fi 98 fi
89 printf '\n%s' "$prompt" 99 printf '\n%s' "$prompt"
90 read -r x 100 read -r x
@@ -100,16 +110,28 @@ practice_htr() {
100 sol="$(${nissy} solve -o -p htr "$scr")" 110 sol="$(${nissy} solve -o -p htr "$scr")"
101 nsol="$(echo "$sol" | grep -v '^$' | wc -l)" 111 nsol="$(echo "$sol" | grep -v '^$' | wc -l)"
102 len="$(echo "$sol" | head -n 1 | wc -w)" 112 len="$(echo "$sol" | head -n 1 | wc -w)"
113 fin="$(${nissy} solve -o -p drfin "$scr")"
114 lenf="$(echo "$fin" | head -n 1 | wc -w)"
115 slice="$(${nissy} solve -o -p drslice "$scr")"
116 lens="$(echo "$slice" | head -n 1 | wc -w)"
103 read -r x 117 read -r x
104 echo "$len moves ($nsol solutions)" 118 echo "$len moves ($nsol solutions)"
105 read -r x 119 read -r x
106 echo "$sol" 120 echo "$sol"
121 if [ "$lenf" != "$lens" ]; then
122 echo ""
123 echo "Optimal leave slice ($lens):"
124 echo "$slice"
125 fi
126 echo ""
127 echo "Optimal DR finish ($lenf):"
128 echo "$fin"
107 printf '\n%s' "$prompt" 129 printf '\n%s' "$prompt"
108 read -r x 130 read -r x
109 done 131 done
110} 132}
111 133
112practice_slice() { 134practice_fin() {
113 nextscr="$(${nissy} scramble htr)" 135 nextscr="$(${nissy} scramble htr)"
114 while true; do 136 while true; do
115 scr="$nextscr" 137 scr="$nextscr"
@@ -118,10 +140,28 @@ practice_slice() {
118 sol="$(${nissy} solve -o -p drudslice "$scr")" 140 sol="$(${nissy} solve -o -p drudslice "$scr")"
119 nsol="$(echo "$sol" | grep -v '^$' | wc -l)" 141 nsol="$(echo "$sol" | grep -v '^$' | wc -l)"
120 len="$(echo "$sol" | head -n 1 | wc -w)" 142 len="$(echo "$sol" | head -n 1 | wc -w)"
143 fin="$(${nissy} solve -o -p drudfin "$scr")"
144 nfin="$(echo "$fin" | grep -v '^$' | wc -l)"
145 lenf="$(echo "$fin" | head -n 1 | wc -w)"
146 opt="$(${nissy} solve -o -p "$scr")"
147 leno="$(echo "$opt" | head -n 1 | wc -w)"
121 read -r x 148 read -r x
122 echo "$len moves ($nsol solutions)" 149 echo "Leave slice: $len moves ($nsol solutions)"
150 if [ "$lenf" != "$len" ]; then
151 echo "DR finish: $lenf moves"
152 fi
123 read -r x 153 read -r x
124 echo "$sol" 154 echo "$sol"
155 if [ "$lenf" != "$len" ]; then
156 echo ""
157 echo "Optimal DR finish ($lenf):"
158 echo "$fin"
159 fi
160 if [ "$leno" != "$lenf" ]; then
161 echo ""
162 echo "Optimal DR-breaking ($leno):"
163 echo "$opt"
164 fi
125 printf '\n%s' "$prompt" 165 printf '\n%s' "$prompt"
126 read -r x 166 read -r x
127 done 167 done

Generated with cgit - Back to sebastiano.tronto.net