#!/usr/bin/ruby require "io/console" r = %w{ """""##..#))#90;;KCX2;;K>U5z2k0MF[:$$$..#)+]1;;K=%$%%$X1;;K?##//1.91j.m.#+z2K:q3i5%x./.%#)n/;;K;"#$%)++)%$8/;;K=#[.$..#++i2y/*.K.;;K.$#k0;;K:"#$z.*%$80;;K=##'-#].[.%]0;.*o/s.z0K8#%%y.%..%$#m12.#'##9.;;KAL.j180;2*;9L.K4#'-*#$$%/.k0;/('#;8$K.$>.x.#%%%..;/n0###*-'o0K/l/;;K3#[2$%*y.W0[0;.<.j/[5k1'k0(h0j.'###l/0/m0#(L.Y.L2"#*'&''83)y.#h.M.)L3(''?.#i2';.&&'(#..k0F.l.z3[/*(&R.&&l/#[5:0A.'J.*[2q/L.'&##'L0"#;.8/i0l0'&(>/[1#'&''[.'<2o/(*##Z2w.##*(=/'(^2&=/Y4o.*'#(&U/i0[391a.&(#'*[3J.(*v.##'[1k.9.84l0G.&&l3'#7.r.K4&(*&#&h3##&'(('Z.z3H.*(K3[/&x.&#('n1[3x1'([/M/Z3,Y.#k.#=4L0K2#70(&&,,n1#'*#*q.[4l/,h4;1=/<5M1K4v0&k8[5B.H.M/h3Z.##(O.m3g.,L3x0w/1/k1('#''n.<2N1g3^1&I.=9M6v/,##;5[:F.M0X2x.w.##&]3k.#m.@.Y1J/q021S.(..L.D1>/52k2;/==M4u.,[9v.=;M4###v0#,l3=.,,,;6E1L0#v.&##''(&5.^2Z.g3;2m.=:M7[<&#..[Dz/o/z6##..o451;1F2M2# } * "" s = nil f = "" r.size.times{|i| if s s = nil else f += r[i] < "." && r[i] || f[s = 43 + f.size - r[i].ord, r[i + 1].ord - 43] end } s = [] 5.times{|i| s.push([]) 4.times{s[i].push("")} } 24.times{|i| 3.times{|j| 3.times{|k| s[k][j] += f[(i * 10 + k * 3 + j) * 16, 16] + "T" } s[3][j] += s[2][j][i * 17, 16].reverse + "T" s[4][j] += f[i * 160 + 144, 16] + "T" } } 5.times{|k| s[k][3] = s[k][1] } p = [0, 233, 23, 108, 88, 222, 173, 98, 230, 177, 136, 17].map{ |i| "\e[48;5;#{i}m" } s = s.map{|i| i.map{|j| d = p[0] + "\e[24A\e[1G" j.each_byte{|k| d += k == 84 && p[0] + "\e[1B\e[1G" || p[k - 34] + " " } d } } print p[0] + "\n" * 24, "\e[?25l" d = f = 0 t = Thread.new{ while d < 4 k = "jBkAhDlCq\3".index(STDIN.getch()) d = k && k / 2 || d end } while d < 4 print s[d][f] f = -~f % 4 sleep 0.14 end print s[4][0], "\e[?25h\e[0m\n" t.join