minor optimize move (avoid half rotate)
minor optimize move (avoid half rotate)

no visible gain.

Scores = [7520, 16376, 16416, 27404, 32180, 32336, 36048, 36188, 36192,
36248, 36476, 36524, 36656, 36832, 37192, 37840, 37960, 49276, 52452,
56876, 58676, 58680, 58880, 59040, 60020, 60100, 60176, 60896, 66080,
67944, 70772, 71248, 71312, 71400, 72004, 72396, 73416, 73996, 74816,
75324, 75744, 76184, 76444, 76584, 76604, 78460, 78488, 78780, 78844,
79200, 79396, 79440, 79700, 79952, 80052, 80112, 80368, 80372, 80380,
80488, 80556, 80632, 80648, 80668, 80696, 80796, 80832, 81176, 82068,
82876, 109344, 111324, 111328, 111728, 113536, 113840, 122572, 123648,
124612, 124748, 124928, 127896, 129564, 129588, 130076, 132564, 132976,
133048, 133280, 134524, 152600, 154876, 156444, 157156, 173180, 173268,
173348, 173816, 173904, 175484]
Avg = 85458.204082
17.443309 ms/step
timeout count 0

real    4m36.194s
user    113m18.260s
sys     0m2.950s

kcwu/2048-python