Mine isn't a timer, it is an average calculator. I already have a timer that works perfectly fine, it is called a stackmat and it has a VERY low battery requirement
BlabablablbalabaGEEKmakingadifferencebetweenverysimillarthingblabalablablablaagain
Mine isn't a timer, it is an average calculator. I already have a timer that works perfectly fine, it is called a stackmat and it has a VERY low battery requirement
So a stopwatch and a calculator are very similar things now?BlabablablbalabaGEEKmakingadifferencebetweenverysimillarthingblabalablablablaagain
<html>
<head>
</head>
<body>
<button id="ProvideScramble" onClick="DoProvideScramble();DoTimeList();TimeListInput.focus();TimeListInput.setSelectionRange(TimeListInput.value.length,TimeListInput.value.length);">Provide scramble</button><textarea id="ProvideScrambleOutput" rows="1" cols="75">No scramble provided yet</textarea><br/>
<textarea id="TimeListInput" rows="12" cols="100">1:23.45 2:34.56 3:45.67 4:56.78 5:67.89 6:78.90</textarea><br/>
<button id="TimeListAction" onClick="DoTimeList();">Calculate</button> Calculate Best Average of: <textarea id="AverageOfInput" rows="1" cols="1">5</textarea><br/>
<textarea id="TimeListOutput" rows="5" cols="100">Nothing calculated yet</textarea><br/>
<hr/>
<button id="InverseTimesAndSeperate" onClick="DoInverseTimesAndSeperate();">Inverse Times and Seperate</button> (used for formatting times from cubetimer)<br/>
<textarea id="InverseTimesAndSeperateOutput" rows="1" cols="100">Nothing inversed and seperated yet</textarea><br/>
<script language="javascript">
function DoProvideScramble()
{
//Thanks to http://www.speedsolving.com/forum/showthread.php?25460-My-python-one-liner-scramble-generator.&p=497474&viewfull=1#post497474
//original code was r=Math.random;for(c=b=j=25;j;c+b-5|c-m&&b-m?document.write("URFBLD"[j--,c=b,b=m]+" 2'"[0|r()*3]+" "):0)m=0|r()*6
var scramblestring = "";
r=Math.random;for(c=b=j=25;j;c+b-5|c-m&&b-m?scramblestring=scramblestring+"URFBLD"[j--,c=b,b=m]+" 2'"[0|r()*3]+" ":0)m=0|r()*6
ProvideScrambleOutput.value = CleanUpText(scramblestring, true, true, true, true);
}
function CleanUpText(DirtyText, LineBreaks, MultiSpaces, Trim, Commas)
{
var CleanerText = DirtyText;
if (LineBreaks) CleanerText = CleanerText.replace(/\n/g, " ");
if (MultiSpaces) CleanerText = CleanerText.replace(/\s+/g, " ");
if (Trim) CleanerText = CleanerText.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
if (Commas) CleanerText = CleanerText.replace(/,/g, "");
return CleanerText;
}
function DoTimeList()
{
TimeListInput.value = CleanUpText(TimeListInput.value, true, true, true, true)
var TheTimes = TimeListInput.value.split(" ");
var i = 0;
var lowest = ConvertCubetimeToSeconds(TheTimes[i]);
var highest = ConvertCubetimeToSeconds(TheTimes[i]);
var total = 0;
var bestaverage = 0;
var bestaveragevalues = "";
while (i < TheTimes.length)
{
var AverageOfXAmountOfCubes = AverageOfInput.value;
var j = i;
var AverageOfXLowest = ConvertCubetimeToSeconds(TheTimes[j]);
var AverageOfXHighest = ConvertCubetimeToSeconds(TheTimes[j]);
var AverageOfXTotal = 0;
var AverageOfXValues = "";
if (i >= AverageOfXAmountOfCubes - 1)
{
while (i - j <= AverageOfXAmountOfCubes - 1)
{
if (ConvertCubetimeToSeconds(TheTimes[j]) < AverageOfXLowest) {AverageOfXLowest = ConvertCubetimeToSeconds(TheTimes[j])};
if (ConvertCubetimeToSeconds(TheTimes[j]) > AverageOfXHighest) {AverageOfXHighest = ConvertCubetimeToSeconds(TheTimes[j])};
AverageOfXTotal = AverageOfXTotal + ConvertCubetimeToSeconds(TheTimes[j]);
if (AverageOfXValues == "") {AverageOfXValues = TheTimes[j]} else {AverageOfXValues = TheTimes[j] + " " + AverageOfXValues};
j--;
}
var AverageOfX = (AverageOfXTotal - (AverageOfXLowest + AverageOfXHighest)) / (AverageOfXAmountOfCubes - 2);
if (bestaverage == 0 || AverageOfX < bestaverage)
{
bestaverage = AverageOfX;
bestaveragevalues = AverageOfXValues;
}
}
if (ConvertCubetimeToSeconds(TheTimes[i]) < lowest) {lowest = ConvertCubetimeToSeconds(TheTimes[i])};
if (ConvertCubetimeToSeconds(TheTimes[i]) > highest) {highest = ConvertCubetimeToSeconds(TheTimes[i])};
total = total + ConvertCubetimeToSeconds(TheTimes[i]);
i++;
}
TimeListOutput.value = 'Total Average: ' + ConvertSecondsToCubeTime((total - (lowest + highest)) / (i - 2)) + '\nBest: ' + ConvertSecondsToCubeTime(lowest) + '\nWorst: ' + ConvertSecondsToCubeTime(highest) + '\nNumber of solves: ' + i + '\nBest Average ' + (AverageOfXAmountOfCubes - 2) + '/' + AverageOfXAmountOfCubes + ': ' + ConvertSecondsToCubeTime(bestaverage) + ' (' + bestaveragevalues + ')';
}
function ConvertCubetimeToSeconds(CubeTime)
{
if (CubeTime.indexOf(":") < 1) {CubeTime = "0:" + CubeTime};
var minutes = parseFloat(CubeTime.split(":")[0]);
var seconds = parseFloat(CubeTime.split(":")[1].split(".")[0]);
var miliseconds = parseFloat(CubeTime.split(":")[1].split(".")[1]);
return ((minutes * 60) + seconds + (miliseconds / 100));
}
function ConvertSecondsToCubeTime(Seconds)
{
var minutes = parseInt(Seconds / 60);
var seconds = (Seconds - (minutes * 60)).toFixed(2);
if (seconds < 10) {seconds = '0' + seconds};
return (minutes + ':' + seconds);
}
function DoInverseTimesAndSeperate()
{
var TheTimes = TimeListInput.value.split(" ");
var TheTimesInversedAndSeperated = "";
var i = 0;
while (i < TheTimes.length)
{
if (TheTimesInversedAndSeperated == "") {TheTimesInversedAndSeperated = TheTimes[i]} else {TheTimesInversedAndSeperated = TheTimes[i] + ", " + TheTimesInversedAndSeperated};
i++;
}
InverseTimesAndSeperateOutput.value = TheTimesInversedAndSeperated;
}
</script>
</body>
</html>
@AvGalen: I see I'm not the only one trying out my new GuHong. It takes some getting used to - corner cutting can be good, but it's very different - sometimes it cuts a different way than I expect. This was just my second average 10/12 with a GuHong.
It is still my best cube but new Guhong just isn't as great as old Guhong. Everybody agrees but we just have to live with it. Old Guhong isn't going to be produced anymore, it is just a great memory now
I destroyed it 2 months ago when I thought cleaning it with boiling water was a good idea
I lol'd ^_^
Round 116:
23.84 22.72 26.81 19.52 (18.97) 21.80 25.55 25.96 (30.52) 21.28 21.53 22.27= 23.13
I freaking hated this average...