# Zabotio's Neat Little Timer



## zabotio (Nov 10, 2012)

Hello People of Speedcubing!

As my first contribution to this forum I'd like to share a Neat Timer that I've programmed during the last few days.
It is made in the command prompt using c++, so the looks of it aren't very breathtaking to say the least.

anyway, lets get started. I'll sort of walk you through it using some pictures and then at the end I'll provide a download link.

The program starts of by prompting for what methods you want to use.
It will later on use that little peice of information to randomize what method to use. (it allows you to enter up to five methods)
The reasoning behind this was my own situation where as i practice Zz, Roux and Heise. 
In other words i added that little function to practice and improve on all methods at the same time.
When you specify a method it has to be ONE word, if you enter more than one word only the first one will be displayed anyway.
One way around this is to separate the words with an underscore instead of a blankspace for example: Roux_method
If you dont want to specify a method You just enter an upper OR lowercase x.
You dont have to specify All five methods. you can for example enter Zz, Roux, Heise and then input x to end the sequence.


After you specify the desired methods it gives you a random scramble followed by what method it wants you to use (that is, if you DO enter a method).
In this case it wanted me to use Zz to start with.
When you've scrambled and you're ready to go you can start the timer using any key on your keyboard. I haven't tried ALL keys but all of them should work.


When the timer starts it doesn't actually display the time ticking while you solve.
I'm gueassing your reaction is somewhere along the lines of "Why not?" 
That's because, at least I, find seeing the time ticking very stressfull, and stress causes wrong turns, sometimes even lockups.


When you then stop the timer it displays your time followed by your average, then a message telling you to "press any key to continue (q to quit)" and last but not least, all of your times one after another.
The program will allow you to save up to 100 times per session. Then you'll have to restart the program and start over, im guessing people rarely do up to 100 solves in a row.
The only bad thing here is that you can't save your averages between sessions. In other words, to save your averages you have to keep the program running.
That is, if you restart it, Everything will be reset.


When you keep going in the program it'll just do everything (except for the method part) all over again, that is, give you another random scramble and another random method to use, this time it wanted me to use the Heise method.

So, that is it for the program itself.

Here is the download link: http://www.mediafire.com/?r5o52hdn8j3s5xd

Hope you like it! 

/
Simon A.K.A Zabotio


----------



## ben1996123 (Nov 10, 2012)

dem scrambles

they only need to be 20 moves.


----------



## erikoui (Nov 10, 2012)

I think it needs a lot of improvement,but as a text-based program it's ok. Maybe you should make it start the timer when spacebar is released.
As for saving the times:

```
FILE* times;
times=fopen("times.txt");
while(...){//program loop
fprintf("%f\n",time);
}
fclose(times)
}
```
May be some syntax errors in the above code, but you get the idea.
Also, use fscanf to read times from the file.


----------



## zabotio (Nov 10, 2012)

erikoui said:


> I think it needs a lot of improvement,but as a text-based program it's ok. Maybe you should make it start the timer when spacebar is released.
> As for saving the times:
> 
> ```
> ...



Yeah well... i know about file I/O though im not very comfortable with it yet. As well, i didn't really feel the need to be able to save the stuff inbetween sessions. At least not with the way i use the program. I'm probably going to update and make the program look and perform alot better as i learn more about c++.
As for activating the timer when spacebar is released, how would that be done. (I'm in no way an expert programmer... yet)

By the way, I have to thank you for the feedback. Feedback is always nice (positive OR negative)


----------



## ben1996123 (Nov 10, 2012)

zabotio said:


> Yeah well... i know about file I/O though im not very comfortable with it yet. As well, i didn't really feel the need to be able to save the stuff inbetween sessions. At least not with the way i use the program. I'm probably going to update and make the program look and perform alot better as i learn more about c++.
> As for activating the timer when spacebar is released, how would that be done. (I'm in no way an expert programmer... yet)
> 
> By the way, I have to thank you for the feedback. Feedback is always nice (positive OR negative)



saving times: http://cplusplus.com/reference/iostream/fstream/


----------



## A Leman (Nov 10, 2012)

zabotio said:


> Hello People of Speedcubing!
> 
> The reasoning behind this was my own situation where as i practice Zz, Roux and *Heise*.
> Simon A.K.A Zabotio



Welcome to the Forum.

You use Heise!! That's cool. I have been trying to use Heise since about August even though my times went up Alot. Since it's intuitive, there are so many random tricks I have picked up for L5E+2C to avoid parity and the 2Gen state since corner twists are the worst. I find sometimes I can see its 2gen and use a 2gll finish instead of Heise.

What are some of your tricks? Since almost no one uses Heise It's harder to share Ideas than within a large community like the CFOP and Roux cubers.


----------



## zabotio (Nov 11, 2012)

A Leman said:


> Welcome to the Forum.
> 
> You use Heise!! That's cool. I have been trying to use Heise since about August even though my times went up Alot. Since it's intuitive, there are so many random tricks I have picked up for L5E+2C to avoid parity and the 2Gen state since corner twists are the worst. I find sometimes I can see its 2gen and use a 2gll finish instead of Heise.
> 
> What are some of your tricks? Since almost no one uses Heise It's harder to share Ideas than within a large community like the CFOP and Roux cubers.



Well... i haven't used Heise for a long time, i've only yet managed to poke my averages down to about 50s-1min, so I'm not really that good at it, I've only yet learned the easiest variation of the l5e-2c step. Though im going to look into the others aswell soon. As for the parity you were talking about, I cant really say that i know what you mean.
At least the way i solve with Heise, i never run into any parity. And aswell the 2gen ll stuff, what do you mean by that, i know what 2gen is, i just dont understand the concept your trying to describe. Just to clarify, what i was trying to say first is that i haven't really learned any fancy tricks with heise yet, only just managed to learn it fully.

I also have to say that it's nice to talk to someone else who uses heise. From what i've found, there aren't many of us.


----------



## A Leman (Nov 11, 2012)

zabotio said:


> Well... i haven't used Heise for a long time, i've only yet managed to poke my averages down to about 50s-1min, so I'm not really that good at it, I've only yet learned the easiest variation of the l5e-2c step. Though im going to look into the others aswell soon. As for the parity you were talking about, I cant really say that i know what you mean.
> At least the way i solve with Heise, i never run into any parity. And aswell the 2gen ll stuff, what do you mean by that, i know what 2gen is, i just dont understand the concept your trying to describe. Just to clarify, what i was trying to say first is that i haven't really learned any fancy tricks with heise yet, only just managed to learn it fully.
> 
> I also have to say that it's nice to talk to someone else who uses heise. From what i've found, there aren't many of us.



Okay, I may not Explain this well because it is confusing, but I will try my best.

Parity and why I need to try to avoid it:
I normally Use the Two pairs method and sometimes the lucky one pair method if I can see it. With the edges first method, parity is never an issue. You solve the edges and then the Corners, but I only do this if the edges are already solved. When you make pairs that you have to preserve, you don't have the same level of freedom for fixing the edges and sometimes run into a situation where you have to swap 2 pairs. The way heise intuitively does this is with 2 pair Cycles that takes 15 moves and do the same as the J/L/N perms which are faster. I think J/L/N perms or 2 pair cycles destroys movecount but there are some tricks to avoid it like recognizing how to break a pair while forming another pair or shuffling(a term on his site) to an edges cycle. Sometimes you hide a pair in a different slot,end up breaking the new slot while solving the old slot and getting rid of parity. If you experiment with the two pairs method, you will quickly understand how parity can be a problem, but It has taken me a long time to start finding viable solutions.

You said you know what 2gen is but I will explain it anyway. When there is not corner parity and the EO is good, you are in a 2gen state. Since Heise already fixes EO, I was focusing on when the last 3 corners do not need to be cycled and I am stuck with 3 corners to twist. 

2gll stands for 2 gen last layer, it is the subset of ZBLL(the last layer of cubes with good edges) that can be done with just <R,U> moves. and is a part of ZBLL that I learned since the algs seemed easy to remember. This is because most of them are just combinations of Sune from different angles.

Anyway, Now that I explained that a 2gen state is bad for Heise but good if you know 2Gll. I try to use 2gll when I can. I know CPLS recognition which is how I can sometimes tell before L5E+2C. 

I hope this helps you make some sense of what I was saying. Heise can get really confusing, which is why it is better for FMC than Speedsolving which it is quite bad at, but I enjoy the challenge and trying to improve my intuition. As far as speedsolvings concerned, I am a very long way away from mastering Heise since I find it's such a difficult method to solve without out-right embarrasing pauses and slower TPS.


----------



## zabotio (Nov 11, 2012)

A Leman said:


> Okay, I may not Explain this well because it is confusing, but I will try my best.
> 
> Parity and why I need to try to avoid it:
> I normally Use the Two pairs method and sometimes the lucky one pair method if I can see it. With the edges first method, parity is never an issue. You solve the edges and then the Corners, but I only do this if the edges are already solved. Whenk you make pairs that you have to preserve, you don't have the same level of freedom for fixing the edges and sometimes run into a situation where you have to swap 2 pairs. The way heise intuitively does this is with 2 pair Cycles that takes 15 moves and do the same as the J/L/N perms which are faster. I think J/L/N perms or 2 pair cycles destroys movecount but there are some tricks to avoid it like recognizing how to break a pair while forming another pair or shuffling(a term on his site) to an edges cycle. Sometimes you hide a pair in a different slot,end up breaking the new slot while solving the old slot and getting rid of parity. If you experiment with the two pairs method, you will quickly understand how parity can be a problem, but It has taken me a long time to start finding viable solutions.
> ...



Oh. That made things alot clearer. 
I have barely looked Into either the two pairs approach or the one pair. 
I'm going to though. After I've looked Into that more I Guess I'll achieve a higher level of overall understanding of the method. And maybe THEN I'll understand what parity you're trying to explain.


----------

