Tweetable Rubik’s Clock Scrambler

Jadi ceritanya saya ingin membuat scrambler Rubik’s Clock yang tweetable, jadi bisa dimasukkan dalam satu tweet atau maksimal 140 karakter – dengan notasi concise ala qqtimer. Setelah pertama kali mencoba, saya memperoleh 151 karakter dengan Perl:

print "(".r().",".r().")/"for(0..3);print"(".r().")/"for(0..5);print p()for(0..3);sub r{return int(rand(13)-6);};sub p{return int(rand(2))==0?"U":"d";}

Sebaris kode tersebut bekerja dengan baik. Setelah itu saya mencoba mengoptimasi lagi, terutama di bagian pin state-nya. Setelah saya pikir lagi, daripada membuat lagi fungsi random antara 0 atau 1, lebih baik kalau fungsi untuk menggenerate angka random itu dipakai juga tetapi dimodulo dengan 2, toh sama saja dengan membuat fungsi random antara 0 dan 1 dan lebih singkat secara teks. Setelah itu menghilangkan beberapa spasi dan kurung yang tidak efisien, diperolehlah kode dengan panjang tepat 140 karakter:

print"(".r().",".r().")/"for(0..3);print"(".r().")/"for(0..5);print p()for(0..3);sub r{return int rand(13)-6};sub p{return r()%2==0?"U":"d"}

Kode ini berfungsi dengan baik. Saya pun mencoba men-tweetnya:


Dan berikut ini adalah hasil scramble sang kode:

Not bad. 🙂