JSFiddle - React, Tailwind, and code Playground

HTML

<pre id="a"></pre>

JavaScript

a=document.getElementById('a');w="innerHTML";h='XXXYYYZZZAAABBBCCC\n';a[w]=h+h+h;function r(b,c,d,e){g=a[w].split("");f=g[b];g[b]=g[e];g[e]=g[d];g[d]=g[c];g[c]=f;a[w]=g.join("")}window.onkeydown=d;function d(e){q=e.keyCode||e;if(q==38)r(0,2,40,38),r(1,21,39,19),r(3,12,9,6),r(4,13,10,7),r(5,14,11,8);if(q==39)d(38),r(23,32,29,26),r(22,31,28,25),r(24,33,30,27),r(41,50,47,44),r(42,51,48,45),r(43,52,49,46),r(15,53,55,17),r(16,34,54,36);if(q==40)r(0,3,15,49),r(1,4,16,48),r(2,5,17,47),r(19,22,34,30),r(20,23,35,29),r(21,24,36,28),r(38,41,53,11),r(39,42,54,10),r(40,43,55,9),r(6,44,46,8),r(7,25,45,27),r(12,14,52,50),r(13,33,51,31);if(q==37){for(i=0;i++<99;)d(0|Math.random()*3+38)}}