onionhoney / roux-trainers Goto Github PK
View Code? Open in Web Editor NEWRubik's cube trainer / solver for the Roux method.
Home Page: https://onionhoney.github.io/roux-trainers
License: GNU General Public License v3.0
Rubik's cube trainer / solver for the Roux method.
Home Page: https://onionhoney.github.io/roux-trainers
License: GNU General Public License v3.0
I am using your lib
directory in another project to build myself a trainer for use with bluetooth cubes.
I encountered a lot of mechanical fixes, like:
tsx
that are really plain typescriptconst
etc.
This code doesn't seem to be changing very much, but I will need to modify Analyzer.ts
since it doesn't really do the right thing for breaking a roux solve into its phases. Are you interested in me sending you pull requests / do you want these fixups?
I couldn't achieve the final cube position after doing the scramble.
I tried front green / top white, front green / top yellow but no luck.
Can you give some instructions on how to use the tracking trainer? It seems very useful, but I couldn't quite understand how to use it. Thanks!
Hello there ! First of all, this is a great app, thank you very much for making it so nice to use !
There's one problem with the EOLR trainer, which is when I select 2a/0, it shows other cases as well.
The filter works for all other cases, but not this one.
I don't know how much info you need, but I'm running Firefox 86.0.
Seems like it's the only missing part for transitions between steps👀
Although sblp is more 'algorithm-based', but it would be really good to know some different algorithms under certain cases(especially those differed by AUF).
I solve the first block on the right side, so i would like to be able to mirror the block position in the FB / SB Trainers.
Would it be possible for you to add this as a config on the trainers or a global config on the navbar?
Thanks in advance.
E moves go in the same direction as the 'D' face, not the 'U' face. They are coded backwards in this codebase.
Here is a patch that should be close to the correct fix:
diff --git a/src/lib/third_party/onionhoney/CubeLib.ts b/src/lib/third_party/onionhoney/CubeLib.ts
index 24ff095..01c1eee 100644
--- a/src/lib/third_party/onionhoney/CubeLib.ts
+++ b/src/lib/third_party/onionhoney/CubeLib.ts
@@ -381,12 +382,19 @@ export class Move {
const rws = make_rot_set(rw)
const lw = new Move([new Move(l), new Move(m)], "l")
const lws = make_rot_set(lw)
- const uw = new Move([new Move(u), new Move(e)], "u")
+ const uw = new Move([new Move(u), es[2]], "u")
const uws = make_rot_set(uw)
+ const bw = new Move([new Move(b), ss[2]], "b")
+ const bws = make_rot_set(bw)
+ const dw = new Move([new Move(d), es[0]], "d")
+ const dws = make_rot_set(dw)
+ const fw = new Move([new Move(f), new Move(s)], "f")
+ const fws = make_rot_set(fw)
+
const x = new Move([new Move(r), ls[2], ms[2]], "x")
const xs = make_rot_set(x)
- const y = new Move([new Move(u), new Move(e), ds[2]], "y")
+ const y = new Move([new Move(u), es[2], ds[2]], "y")
const ys = make_rot_set(y)
const z = new Move([x, y, x, x, x], "z")
const zs = make_rot_set(z)
@@ -396,7 +404,7 @@ export class Move {
id,
us, fs, rs, ls, ds, bs, ms, es, ss,
xs, ys, zs,
- rws, lws, uws
+ rws, lws, uws, bws, dws, fws
].flat()
const moves_dict: { [key: string]: Move } = Object.create({})
moves.forEach(m => moves_dict[m.name] = m)
diff --git a/src/lib/third_party/onionhoney/Defs.ts b/src/lib/third_party/onionhoney/Defs.ts
index dce2a07..a4499b8 100644
--- a/src/lib/third_party/onionhoney/Defs.ts
+++ b/src/lib/third_party/onionhoney/Defs.ts
@@ -148,9 +148,9 @@ const m : MoveT = {
const e : MoveT = {
cpc: [],
coc: [],
- epc: [[8, 9], [9, 10], [10, 11], [11, 8]],
+ epc: [[8, 11], [11, 10], [10, 9], [9, 8]],
eoc: [1, 1, 1, 1],
- tpc: [[2, 4], [4, 3], [3, 5], [5, 2]],
+ tpc: [[2, 5], [5, 3], [3, 4], [4, 2]],
name: "E",
}
Hello! This looks great and is going to be so helpful. However I find some of the options confusing as I'm not familiar with the acronyms being used. I think it would be super helpful for a glossary (either in a modal or eternal link) or some denotation of more advanced options vs basic ones
These are good cases to learn, but they don't appear often enough while training in any mode.
Tutorial: https://www.youtube.com/watch?v=2juB7PEeTQw
All cases: https://docs.google.com/spreadsheets/d/11ryBFbwPihw4B3z35Q42RTXsGUwhnioudL2G8fcWs60/view
Thank you for the very useful trainers and the user-friendly app.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.