diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2025-11-15 18:43:55 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2025-11-15 18:43:55 +0100 |
| commit | d680f1e102fd683e297a66ba376a3fdbf6c68994 (patch) | |
| tree | b22c29383641c1bb6e726e242c700027169c1885 /unused | |
| parent | 43ea981dca8bf8b11f5879804f9bc56def9cfe78 (diff) | |
| download | scripts-d680f1e102fd683e297a66ba376a3fdbf6c68994.tar.gz scripts-d680f1e102fd683e297a66ba376a3fdbf6c68994.zip | |
Moved alg to unused (replaced by C program)
Diffstat (limited to 'unused')
| -rwxr-xr-x | unused/alg | 444 |
1 files changed, 444 insertions, 0 deletions
diff --git a/unused/alg b/unused/alg new file mode 100755 index 0000000..cd5d3c8 --- /dev/null +++ b/unused/alg | |||
| @@ -0,0 +1,444 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | # Script to store and access blindsolving algs (speedcubing stuff) | ||
| 4 | |||
| 5 | # Example: alg e FG - opens up editor to edit $basedir/edges/$ebuffer/RD/LD | ||
| 6 | # Example: alg c UBL E - prints out all first algs for UBL-FDR-* | ||
| 7 | |||
| 8 | usage() { | ||
| 9 | echo "Usage:" | ||
| 10 | echo "alg" | ||
| 11 | echo "alg edit (c|e|w|x|t) [buffer] (1 letter|2 letters)" | ||
| 12 | echo "alg export (c|e|w|x|t|all)" | ||
| 13 | } | ||
| 14 | |||
| 15 | default_editor=vi | ||
| 16 | basedir="$HOME/box/speedcubing/bld/algs" | ||
| 17 | ebuffer=UR | ||
| 18 | cbuffer=UFR | ||
| 19 | wbuffer=UFr | ||
| 20 | xbuffer=Ubl | ||
| 21 | tbuffer=Uf | ||
| 22 | |||
| 23 | edge() { | ||
| 24 | [ "$1" = "a" ] && echo FU | ||
| 25 | [ "$1" = "b" ] && echo UF | ||
| 26 | [ "$1" = "c" ] && echo UL | ||
| 27 | [ "$1" = "d" ] && echo UB | ||
| 28 | [ "$1" = "e" ] && echo FD | ||
| 29 | [ "$1" = "f" ] && echo RD | ||
| 30 | [ "$1" = "g" ] && echo LD | ||
| 31 | [ "$1" = "i" ] && echo FR | ||
| 32 | [ "$1" = "j" ] && echo LU | ||
| 33 | [ "$1" = "k" ] && echo RB | ||
| 34 | [ "$1" = "l" ] && echo DF | ||
| 35 | [ "$1" = "m" ] && echo DB | ||
| 36 | [ "$1" = "n" ] && echo DR | ||
| 37 | [ "$1" = "o" ] && echo FL | ||
| 38 | [ "$1" = "p" ] && echo DL | ||
| 39 | [ "$1" = "r" ] && echo BU | ||
| 40 | [ "$1" = "s" ] && echo BD | ||
| 41 | [ "$1" = "t" ] && echo BL | ||
| 42 | [ "$1" = "u" ] && echo BR | ||
| 43 | [ "$1" = "v" ] && echo LF | ||
| 44 | [ "$1" = "w" ] && echo LB | ||
| 45 | [ "$1" = "z" ] && echo RF | ||
| 46 | } | ||
| 47 | |||
| 48 | corner() { | ||
| 49 | [ "$1" = "a" ] && echo FUL | ||
| 50 | [ "$1" = "b" ] && echo UBL | ||
| 51 | [ "$1" = "c" ] && echo UFL | ||
| 52 | [ "$1" = "d" ] && echo UBR | ||
| 53 | [ "$1" = "e" ] && echo FDR | ||
| 54 | [ "$1" = "f" ] && echo RDB | ||
| 55 | [ "$1" = "g" ] && echo LDF | ||
| 56 | [ "$1" = "j" ] && echo LUF | ||
| 57 | [ "$1" = "k" ] && echo RUB | ||
| 58 | [ "$1" = "l" ] && echo DFR | ||
| 59 | [ "$1" = "m" ] && echo DBR | ||
| 60 | [ "$1" = "n" ] && echo DFL | ||
| 61 | [ "$1" = "o" ] && echo FDL | ||
| 62 | [ "$1" = "p" ] && echo DBL | ||
| 63 | [ "$1" = "r" ] && echo BUR | ||
| 64 | [ "$1" = "s" ] && echo BUL | ||
| 65 | [ "$1" = "t" ] && echo BDL | ||
| 66 | [ "$1" = "u" ] && echo BDR | ||
| 67 | [ "$1" = "v" ] && echo LUB | ||
| 68 | [ "$1" = "w" ] && echo LDB | ||
| 69 | [ "$1" = "z" ] && echo RDF | ||
| 70 | } | ||
| 71 | |||
| 72 | wing() { | ||
| 73 | [ "$1" = "a" ] && echo FUl | ||
| 74 | [ "$1" = "b" ] && echo URb | ||
| 75 | [ "$1" = "c" ] && echo ULf | ||
| 76 | [ "$1" = "d" ] && echo UBl | ||
| 77 | [ "$1" = "e" ] && echo FDr | ||
| 78 | [ "$1" = "f" ] && echo RDb | ||
| 79 | [ "$1" = "g" ] && echo LDf | ||
| 80 | [ "$1" = "i" ] && echo FRu | ||
| 81 | [ "$1" = "j" ] && echo LUb | ||
| 82 | [ "$1" = "k" ] && echo RBu | ||
| 83 | [ "$1" = "l" ] && echo DFl | ||
| 84 | [ "$1" = "m" ] && echo DBr | ||
| 85 | [ "$1" = "n" ] && echo DRf | ||
| 86 | [ "$1" = "o" ] && echo FLd | ||
| 87 | [ "$1" = "p" ] && echo DLb | ||
| 88 | [ "$1" = "r" ] && echo BUr | ||
| 89 | [ "$1" = "s" ] && echo BDl | ||
| 90 | [ "$1" = "t" ] && echo BLu | ||
| 91 | [ "$1" = "u" ] && echo BRd | ||
| 92 | [ "$1" = "v" ] && echo LFu | ||
| 93 | [ "$1" = "w" ] && echo LBd | ||
| 94 | [ "$1" = "x" ] && echo RUf | ||
| 95 | [ "$1" = "z" ] && echo RFd | ||
| 96 | } | ||
| 97 | |||
| 98 | xcenter() { | ||
| 99 | [ "$1" = "a" ] && echo Ful | ||
| 100 | [ "$1" = "b" ] && echo Ufr | ||
| 101 | [ "$1" = "c" ] && echo Ufl | ||
| 102 | [ "$1" = "d" ] && echo Ubr | ||
| 103 | [ "$1" = "e" ] && echo Fdr | ||
| 104 | [ "$1" = "f" ] && echo Rdb | ||
| 105 | [ "$1" = "g" ] && echo Ldf | ||
| 106 | [ "$1" = "i" ] && echo Fur | ||
| 107 | [ "$1" = "j" ] && echo Luf | ||
| 108 | [ "$1" = "k" ] && echo Rub | ||
| 109 | [ "$1" = "l" ] && echo Dfr | ||
| 110 | [ "$1" = "m" ] && echo Dbr | ||
| 111 | [ "$1" = "n" ] && echo Dfl | ||
| 112 | [ "$1" = "o" ] && echo Fdl | ||
| 113 | [ "$1" = "p" ] && echo Dbl | ||
| 114 | [ "$1" = "r" ] && echo Bur | ||
| 115 | [ "$1" = "s" ] && echo Bul | ||
| 116 | [ "$1" = "t" ] && echo Bdl | ||
| 117 | [ "$1" = "u" ] && echo Bdr | ||
| 118 | [ "$1" = "v" ] && echo Lub | ||
| 119 | [ "$1" = "w" ] && echo Ldb | ||
| 120 | [ "$1" = "x" ] && echo Ruf | ||
| 121 | [ "$1" = "z" ] && echo Rdf | ||
| 122 | } | ||
| 123 | |||
| 124 | tcenter() { | ||
| 125 | [ "$1" = "a" ] && echo Fu | ||
| 126 | [ "$1" = "b" ] && echo Ur | ||
| 127 | [ "$1" = "c" ] && echo Ul | ||
| 128 | [ "$1" = "d" ] && echo Ub | ||
| 129 | [ "$1" = "e" ] && echo Fd | ||
| 130 | [ "$1" = "f" ] && echo Rd | ||
| 131 | [ "$1" = "g" ] && echo Ld | ||
| 132 | [ "$1" = "i" ] && echo Fr | ||
| 133 | [ "$1" = "j" ] && echo Lu | ||
| 134 | [ "$1" = "k" ] && echo Rb | ||
| 135 | [ "$1" = "l" ] && echo Df | ||
| 136 | [ "$1" = "m" ] && echo Db | ||
| 137 | [ "$1" = "n" ] && echo Dr | ||
| 138 | [ "$1" = "o" ] && echo Fl | ||
| 139 | [ "$1" = "p" ] && echo Dl | ||
| 140 | [ "$1" = "r" ] && echo Bu | ||
| 141 | [ "$1" = "s" ] && echo Bd | ||
| 142 | [ "$1" = "t" ] && echo Bl | ||
| 143 | [ "$1" = "u" ] && echo Br | ||
| 144 | [ "$1" = "v" ] && echo Lf | ||
| 145 | [ "$1" = "w" ] && echo Lb | ||
| 146 | [ "$1" = "x" ] && echo Ru | ||
| 147 | [ "$1" = "z" ] && echo Rf | ||
| 148 | } | ||
| 149 | |||
| 150 | edit() { | ||
| 151 | mkdir -p "$basedir/$1/$2/$3" | ||
| 152 | $editor "$basedir/$1/$2/$3/$4" | ||
| 153 | } | ||
| 154 | |||
| 155 | showall_c() { | ||
| 156 | all_letters="a b c d e f g j k l m n o p r s t u v w z" | ||
| 157 | buffer="$1" | ||
| 158 | firstletter="$2" | ||
| 159 | firsttarget="$(corner $firstletter)" | ||
| 160 | for secondletter in $all_letters; do | ||
| 161 | secondtarget="$(corner $secondletter)" | ||
| 162 | f="$basedir/corners/$buffer/$firsttarget/$secondtarget" | ||
| 163 | [ -f "$f" ] || continue | ||
| 164 | line="$(head -n 1 "$f")" | ||
| 165 | printf '%s %s\n' "$firstletter$secondletter" "$line" | ||
| 166 | done | ||
| 167 | } | ||
| 168 | |||
| 169 | showall_e() { | ||
| 170 | all_letters="a b c d e f g i j k l m n o p r s t u v w z" | ||
| 171 | buffer="$1" | ||
| 172 | firstletter="$2" | ||
| 173 | firsttarget="$(edge $firstletter)" | ||
| 174 | for secondletter in $all_letters; do | ||
| 175 | secondtarget="$(edge $secondletter)" | ||
| 176 | f="$basedir/edges/$buffer/$firsttarget/$secondtarget" | ||
| 177 | [ -f "$f" ] || continue | ||
| 178 | line="$(head -n 1 "$f")" | ||
| 179 | printf '%s %s\n' "$firstletter$secondletter" "$line" | ||
| 180 | done | ||
| 181 | } | ||
| 182 | |||
| 183 | showall_w() { | ||
| 184 | all_letters="a b c d e f g i j k l m n o p r s t u v w x z" | ||
| 185 | buffer="$1" | ||
| 186 | firstletter="$2" | ||
| 187 | firsttarget="$(wing $firstletter)" | ||
| 188 | for secondletter in $all_letters; do | ||
| 189 | secondtarget="$(wing $secondletter)" | ||
| 190 | f="$basedir/wings/$buffer/$firsttarget/$secondtarget" | ||
| 191 | [ -f "$f" ] || continue | ||
| 192 | line="$(head -n 1 "$f")" | ||
| 193 | printf '%s %s\n' "$firstletter$secondletter" "$line" | ||
| 194 | done | ||
| 195 | } | ||
| 196 | |||
| 197 | showall_x() { | ||
| 198 | all_letters="a b c d e f g i j k l m n o p r s t u v w x z" | ||
| 199 | buffer="$1" | ||
| 200 | firstletter="$2" | ||
| 201 | firsttarget="$(xcenter $firstletter)" | ||
| 202 | for secondletter in $all_letters; do | ||
| 203 | secondtarget="$(xcenter $secondletter)" | ||
| 204 | f="$basedir/xcenters/$buffer/$firsttarget/$secondtarget" | ||
| 205 | [ -f "$f" ] || continue | ||
| 206 | line="$(head -n 1 "$f")" | ||
| 207 | printf '%s %s\n' "$firstletter$secondletter" "$line" | ||
| 208 | done | ||
| 209 | } | ||
| 210 | |||
| 211 | showall_t() { | ||
| 212 | all_letters="a b c d e f g i j k l m n o p r s t u v w x z" | ||
| 213 | buffer="$1" | ||
| 214 | firstletter="$2" | ||
| 215 | firsttarget="$(tcenter $firstletter)" | ||
| 216 | for secondletter in $all_letters; do | ||
| 217 | secondtarget="$(tcenter $secondletter)" | ||
| 218 | f="$basedir/tcenters/$buffer/$firsttarget/$secondtarget" | ||
| 219 | [ -f "$f" ] || continue | ||
| 220 | line="$(head -n 1 "$f")" | ||
| 221 | printf '%s %s\n' "$firstletter$secondletter" "$line" | ||
| 222 | done | ||
| 223 | } | ||
| 224 | |||
| 225 | export_csv_c() { | ||
| 226 | sorted_letters="d b c l n p m k z f j v w g a o e s r u t" | ||
| 227 | buffer="$cbuffer" | ||
| 228 | f="$basedir/corners/$buffer" | ||
| 229 | printf '"",' | ||
| 230 | for first in $sorted_letters; do | ||
| 231 | printf '"%s",' "$(corner $first)" | ||
| 232 | done | ||
| 233 | printf '\n' | ||
| 234 | for first in $sorted_letters; do | ||
| 235 | firstpiece="$(corner $first)" | ||
| 236 | printf '"%s",' "$firstpiece" | ||
| 237 | for second in $sorted_letters; do | ||
| 238 | g="$f/$firstpiece/$(corner $second)" | ||
| 239 | if [ "$first" = "$second" ] || [ ! -f "$g" ]; then | ||
| 240 | printf '"",' | ||
| 241 | else | ||
| 242 | printf '"%s",' "$(head -n 1 "$g")" | ||
| 243 | fi | ||
| 244 | done | ||
| 245 | printf '\n' | ||
| 246 | done | ||
| 247 | } | ||
| 248 | |||
| 249 | export_csv_e() { | ||
| 250 | sorted_letters="d c b n l p m k z f v j w g i a o e t r u s" | ||
| 251 | buffer="$ebuffer" | ||
| 252 | f="$basedir/edges/$buffer" | ||
| 253 | printf '"",' | ||
| 254 | for first in $sorted_letters; do | ||
| 255 | printf '"%s",' "$(edge $first)" | ||
| 256 | done | ||
| 257 | printf '\n' | ||
| 258 | for first in $sorted_letters; do | ||
| 259 | firstpiece="$(edge $first)" | ||
| 260 | printf '"%s",' "$firstpiece" | ||
| 261 | for second in $sorted_letters; do | ||
| 262 | g="$f/$firstpiece/$(edge $second)" | ||
| 263 | if [ "$first" = "$second" ] || [ ! -f "$g" ]; then | ||
| 264 | printf '"",' | ||
| 265 | else | ||
| 266 | printf '"%s",' "$(head -n 1 "$g")" | ||
| 267 | fi | ||
| 268 | done | ||
| 269 | printf '\n' | ||
| 270 | done | ||
| 271 | } | ||
| 272 | |||
| 273 | export_csv_w() { | ||
| 274 | sorted_letters="b d c n l p m k x z f v j w g i a o e t r u s" | ||
| 275 | buffer="$wbuffer" | ||
| 276 | f="$basedir/wings/$buffer" | ||
| 277 | printf '"",' | ||
| 278 | for first in $sorted_letters; do | ||
| 279 | printf '"%s",' "$(wing $first)" | ||
| 280 | done | ||
| 281 | printf '\n' | ||
| 282 | for first in $sorted_letters; do | ||
| 283 | firstpiece="$(wing $first)" | ||
| 284 | printf '"%s",' "$firstpiece" | ||
| 285 | for second in $sorted_letters; do | ||
| 286 | g="$f/$firstpiece/$(wing $second)" | ||
| 287 | if [ "$first" = "$second" ] || [ ! -f "$g" ]; then | ||
| 288 | printf '"",' | ||
| 289 | else | ||
| 290 | printf '"%s",' "$(head -n 1 "$g")" | ||
| 291 | fi | ||
| 292 | done | ||
| 293 | printf '\n' | ||
| 294 | done | ||
| 295 | } | ||
| 296 | |||
| 297 | export_csv_x() { | ||
| 298 | sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" | ||
| 299 | buffer="$xbuffer" | ||
| 300 | f="$basedir/xcenters/$buffer" | ||
| 301 | printf '"",' | ||
| 302 | for first in $sorted_letters; do | ||
| 303 | printf '"%s",' "$(xcenter $first)" | ||
| 304 | done | ||
| 305 | printf '\n' | ||
| 306 | for first in $sorted_letters; do | ||
| 307 | firstpiece="$(xcenter $first)" | ||
| 308 | printf '"%s",' "$firstpiece" | ||
| 309 | for second in $sorted_letters; do | ||
| 310 | g="$f/$firstpiece/$(xcenter $second)" | ||
| 311 | if [ "$first" = "$second" ] || [ ! -f "$g" ]; then | ||
| 312 | printf '"",' | ||
| 313 | else | ||
| 314 | printf '"%s",' "$(head -n 1 "$g")" | ||
| 315 | fi | ||
| 316 | done | ||
| 317 | printf '\n' | ||
| 318 | done | ||
| 319 | } | ||
| 320 | |||
| 321 | export_csv_t() { | ||
| 322 | sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" | ||
| 323 | buffer="$tbuffer" | ||
| 324 | f="$basedir/tcenters/$buffer" | ||
| 325 | printf '"",' | ||
| 326 | for first in $sorted_letters; do | ||
| 327 | printf '"%s",' "$(tcenter $first)" | ||
| 328 | done | ||
| 329 | printf '\n' | ||
| 330 | for first in $sorted_letters; do | ||
| 331 | firstpiece="$(tcenter $first)" | ||
| 332 | printf '"%s",' "$firstpiece" | ||
| 333 | for second in $sorted_letters; do | ||
| 334 | g="$f/$firstpiece/$(tcenter $second)" | ||
| 335 | if [ "$first" = "$second" ] || [ ! -f "$g" ]; then | ||
| 336 | printf '"",' | ||
| 337 | else | ||
| 338 | printf '"%s",' "$(head -n 1 "$g")" | ||
| 339 | fi | ||
| 340 | done | ||
| 341 | printf '\n' | ||
| 342 | done | ||
| 343 | } | ||
| 344 | |||
| 345 | run() { | ||
| 346 | case "$1" in | ||
| 347 | edit) | ||
| 348 | editor="$default_editor" | ||
| 349 | shift | ||
| 350 | ;; | ||
| 351 | export) | ||
| 352 | if [ "$2" = "all" ]; then | ||
| 353 | mkdir -p bldsheets | ||
| 354 | export_csv_c > bldsheets/corners.csv | ||
| 355 | export_csv_e > bldsheets/edges.csv | ||
| 356 | export_csv_w > bldsheets/wings.csv | ||
| 357 | export_csv_x > bldsheets/xcenters.csv | ||
| 358 | export_csv_t > bldsheets/tcenters.csv | ||
| 359 | echo "Sheets exported to bldsheets/" | ||
| 360 | return | ||
| 361 | fi | ||
| 362 | #TODO add option for alternative buffers | ||
| 363 | [ "$2" != "c" ] && [ "$2" != "e" ] && \ | ||
| 364 | [ "$2" != "w" ] && [ "$2" != "x" ] && \ | ||
| 365 | [ "$2" != "t" ] && usage && return | ||
| 366 | export_csv_$2 | ||
| 367 | return | ||
| 368 | ;; | ||
| 369 | *) | ||
| 370 | editor="cat" | ||
| 371 | ;; | ||
| 372 | esac | ||
| 373 | |||
| 374 | type="$1" | ||
| 375 | if [ -z "$3" ]; then | ||
| 376 | letters="$2" | ||
| 377 | cbuf="$cbuffer" | ||
| 378 | ebuf="$ebuffer" | ||
| 379 | wbuf="$wbuffer" | ||
| 380 | xbuf="$xbuffer" | ||
| 381 | tbuf="$tbuffer" | ||
| 382 | else | ||
| 383 | letters="$3" | ||
| 384 | cbuf="$2" | ||
| 385 | ebuf="$2" | ||
| 386 | wbuf="$2" | ||
| 387 | xbuf="$2" | ||
| 388 | tbuf="$2" | ||
| 389 | fi | ||
| 390 | |||
| 391 | letter1="$(echo "$letters" | cut -c 1)" | ||
| 392 | letter2="$(echo "$letters" | cut -b 2)" | ||
| 393 | |||
| 394 | [ -z "$letter1" ] && usage && return | ||
| 395 | |||
| 396 | case "$type" in | ||
| 397 | c) | ||
| 398 | if [ -n "$letter2" ]; then | ||
| 399 | edit corners $cbuf $(corner $letter1) $(corner $letter2) | ||
| 400 | else | ||
| 401 | showall_c $cbuf $letter1 | ||
| 402 | fi | ||
| 403 | ;; | ||
| 404 | e) | ||
| 405 | if [ -n "$letter2" ]; then | ||
| 406 | edit edges $ebuf $(edge $letter1) $(edge $letter2) | ||
| 407 | else | ||
| 408 | showall_e $ebuf $letter1 | ||
| 409 | fi | ||
| 410 | ;; | ||
| 411 | w) | ||
| 412 | if [ -n "$letter2" ]; then | ||
| 413 | edit wings $wbuf $(wing $letter1) $(wing $letter2) | ||
| 414 | else | ||
| 415 | showall_w $wbuf $letter1 | ||
| 416 | fi | ||
| 417 | ;; | ||
| 418 | x) | ||
| 419 | if [ -n "$letter2" ]; then | ||
| 420 | edit xcenters $xbuf $(xcenter $letter1) $(xcenter $letter2) | ||
| 421 | else | ||
| 422 | showall_x $xbuf $letter1 | ||
| 423 | fi | ||
| 424 | ;; | ||
| 425 | t) | ||
| 426 | if [ -n "$letter2" ]; then | ||
| 427 | edit tcenters $tbuf $(tcenter $letter1) $(tcenter $letter2) | ||
| 428 | else | ||
| 429 | showall_t $tbuf $letter1 | ||
| 430 | fi | ||
| 431 | ;; | ||
| 432 | *) | ||
| 433 | usage | ||
| 434 | ;; | ||
| 435 | esac | ||
| 436 | } | ||
| 437 | |||
| 438 | if [ -n "$1" ]; then | ||
| 439 | run $@ | ||
| 440 | else | ||
| 441 | while read -r args; do | ||
| 442 | [ -n "$args" ] && run $args | ||
| 443 | done | ||
| 444 | fi | ||
