This is a simple random state scrambler created with cube.js. After the initialization is complete, click on the "generate random scramble" button to generate a random-state scramble.
Graphics are generated using Conrad Rider's VisualCube.
The demo scrambler and its code are presented below. Click here for a standalone page.
demo.html:
<!DOCTYPE html>
<head>
<style>
#randomstate { visibility: hidden; }
</style>
</head>
<body>
<p id="status"></p>
<p id="randomstate">
<button>Generate random scramble</button><br>
<span class="result"></span>
</p>
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="/cubejs/lib/cube.js"></script>
<script src="/cubejs/lib/async.js"></script>
<script src="demo.js"></script>
</body>
demo.js:
(function() {
var start, progressHandle;
var progress = function() {
// Add a dot each second
$('#status').text(function(index, text) { return text + '.'; });
};
var initialized = function() {
// Precomputing finished, stop adding dots
clearInterval(progressHandle);
// Show the duration of initialization
var end = new Date,
duration = (end - start) / 1000;
$('#status').text('Initialization done in ' + duration + ' seconds.');
// Show the scrambler
$('#randomstate').css('visibility', 'visible');
$('#randomstate button').on('click', generateScramble);
};
var generateScramble = function() {
// Hide the initialization status on first scramble
$('#status').hide();
// Generate a scramble
Cube.asyncScramble(function(alg) {
var s = alg.replace(/\s+/g, ''), // remove spaces
url = "http://cube.rider.biz/visualcube.png?size=150&alg=" + s;
$('#randomstate .result').html(alg + "<br><img src=\"" + url + "\">");
});
};
$(function() {
$('#status').text('Initializing');
// Start measuring time
start = new Date;
// Start adding dots
progressHandle = setInterval(progress, 1000);
// Start precomputing
Cube.asyncInit('/cubejs/lib/worker.js', initialized);
});
})();