# HARCS (JARCS Replacement) - Cube Solver

#### I_<3_SCS

##### Member
some people have told me it works in Wine

E and S moves should already work, i will definitely add the full-solve movecount histogram, and the rest of the upgrades are in progress
Dude, nice program!

Really useful!

#### bren077s

##### Member
E and S moves should already work, i will definitely add the full-solve movecount histogram, and the rest of the upgrades are in progress
I setup a movegroup that used E, and it never happened to use E in the solves I tested. It is possible that the solves I tested simply never used E because it was sub optimal. Good to know they work.

For those of you who are interested. I created a small python script(requires python, numpy, and matplotlib to run) that takes in one of @mDiPalma's export files and creates histograms of each substep and the entire solve. The red dotted line is the average. Now, it also shows what moves are used during each step and during the entire solve(should be nice to see what methods are best for 1 handed). You will need to download the file and change the extension from .txt to .py

It is run using the command: 'python SolveAnalyzer.py "exported filename"'
ex: python SolveAnalyzer.py roux_solves.txt
Here is an example of its output on 100,000 Roux solves:

Hey @mDiPalma, I was working on setting this up for ZZ-CT using the algs on http://gyroninja.net/zzct/zzct.html#page.
I keep running into issues when I analyze and I was wondering if their is an easy way to convert from the hex cube state to an algorithm so I can look at what cases are failing. Currently TSLE seems to be working all of the time, but sometimes TTLL fails. Here is the output:
Code:
 Errors:
Attempt 1 on step 5 at state:
241356789abc/222222222222/42315678/44444444/123
Attempt 56 on step 5 at state:
142356789abc/222222222222/21435678/44444444/123
Attempt 64 on step 5 at state:
124356789abc/222222222222/34215678/44444444/123
Attempt 86 on step 5 at state:
134256789abc/222222222222/41325678/44444444/123

#### Attachments

• 3.5 KB Views: 1

#### Neuro

##### Member
Hey is it possible to leave out one of two pieces? I want to be able to solve Roux SB but it can exclude either corner (DFR DBR) Thanks!

#### bren077s

##### Member
Currently HARCS only supports doing things in the exact same order every time. For testing with HARCS, you would have to pick one of the corners and always leave that same corner out.

#### Sk0bel

##### Member
Hi @mDiPalma,

Your program is just wonderful !

Unfortunately, I have some issues with it. Actually, in my custom.txt file, I'm using eps and cos commands to permute and disorient few pieces. It works like a charm when I use a command like : "apply R' D2 R2 B2 U' B2 D2 F2 L2 R2 D2 F L2 D L B' L D' R # all". But one problem comes when, instead of using a generated scramble, I write something like : "apply random # all" or even "random all" ; at the third step of my custom method (the step where eps and cos appear) and after that one, I get an error :

The seconds problem I get is when I'm using the "analyze" command. I'm getting no data and errors appear :

I hope it's going to be fixed

Thanks again for the program !

#### mDiPalma

##### Member
Can I see the text of your input file?

#### Sk0bel

##### Member
Can I see the text of your input file?
No, sorry, I want to keep it secret.

You can nonetheless try out with the RiceSquare file you did.
You'll note that the analyze command isn't working at all.
So does the random command when you see what happens after typing "view"...

I really hope you'll notice that..

Make HARCS as great as possible !

#### Arc

##### Member
A feature that seems very hard to implement and not that useful but nonetheless pretty neat is forcing separation of oriented pieces. That is, putting them in their own layer.

#### bren077s

##### Member
Your search depth is way too small for f2l-1e. as it says, no solution found within search depth. That being said, you will probably run out of memory before increasing your search depth enough. You probably need to break f2l-1e into more substeps.

#### mDiPalma

##### Member
Its not work with this custom.
yes, i think solving 4 F2L pairs in 10 moves is a little ambitious.

you should break f2l-1E into two steps (left and right, maybe)

#### Micki

##### Member
why can't i get the analyze to work with my costum file?

#### bren077s

##### Member
whenever you get errors like that, it generally means that you do not have a high enough move count(prunedepth+searchdepth) for a step or you do not have the right move group. I think you need to increase you move count for eo2x2x3 and potentially f2l as well.

#### Micki

##### Member
whenever you get errors like that, it generally means that you do not have a high enough move count(prunedepth+searchdepth) for a step or you do not have the right move group. I think you need to increase you move count for eo2x2x3 and potentially f2l as well.
Ok so first I tried changing the movecounts in f2l to 8 in both and eo2x2x3 to 7 in both, that didn't work, then i tried changing the movegroup to a custom one allowing the same moves and that didn't work either. Then finally i changed the custom group to allow u moves also and for some reason it worked even though u moves aren't necessary for that step. But thanks

#### bren077s

##### Member
I have not look through the mthod, but it could be related to which center are solved/ doing eo

#### mDiPalma

##### Member
It's been a while since I published an update to this program. I've added a few things that I think are pretty cool. Here is a link. I will git commit tomorrow morning.

You can now generate algorithms between two states (defined in your input file) automatically. Include this line in your input file: "algsearch step1 step2" with the optional term "--NO-ISO" to discount isomorphs. Then you can call "algsearch 2" in HARCS to generate 2 algorithms for each unique state between the prescribed steps.

Here is an example of me generating the 2 <RUD> algorithms for each of the 22 PLLs in around 40 seconds.

Another interesting feature of this command is that it gives frequency-weighted movecounts (which is more accurate than just averaging the moves for each alg).

(One cool trick with this command is a way to calculate the number of cases between two states. You can define two steps in your input file with a searchdepth and prunedepth of 1. Then just run "algsearch 1" and it will calculate the number of unique states between these cases. It won't currently discount symmetries and it only can detect U-layer isomorphs, but it's pretty convenient nonetheless.)

Note: Because there can be many states between arbitrary steps, this command may take a significant amount of time to execute.

Also, to allow for the user to view the statistic results before a potentially large number of errors appear (and to allow for usage of the trick I described previously), the user must push RETURN/ENTER one additional time after the analysis completes and the statistics are shown before the program resumes.

Type "hacks 20" to search for short Linear FMC solutions for the loaded method on an applied scramble.

Basically, it will solve the first step 20 times. Then for each of these solutions, it will solve the second step 20 times. This process repeats until the cube is solved for all branches (branch factor for algorithmic steps is 1, however). Then it will look through all the possible solutions and pick out the shortest one. It posts some pretty interesting statistics afterwards.

Here is an example of me finding a quick 25 htm Petrus solution to a random scramble in around 5 seconds. I've actually gotten a few sub-20s with ZZ in this program.

Note: If you use this to cheat in FMC or other unofficial events, you can't receive Communion, and you won't be saved when you die. Just FYI.

-added setting to select browser visualization (ACN or my XMDI)
-custom solved states for "analyze" and "hacks"
-fixed several bugs