#!/usr/bin/ruby data = [ [30, 44], [34, 104], [90, 40], [96, 40], [30, 107], [96, 107], [30, 100], [97, 47], [36, 100], [96, 47], [91, 40], [97, 41], [97, 46], [30, 106], ] if true encoded = data.map{|x, y| (x + 5).chr + y.chr } * "" print encoded, "\n" # 78 bytes. decoded = "#,'h_(e(#kek#df/)de/`(f)f.#j".bytes.each_slice(2).map{|x,y|"\e[#{x-5};#{y}m"} # 81 bytes. decoded = "#,'h_(e(#kek#df/)de/`(f)f.#j".scan(/(.)(.)/).map{|x,y|"\e[#{x.ord-5};#{y.ord}m"} # 78 bytes. decoded = "#,'h_(e(#kek#df/)de/`(f)f.#j".scan(/../).map{|x|"\e[#{x.ord-5};#{x[1].ord}m"} print decoded, "\n" end if false unique_first = {} unique_second = {} data.each{|x, y| unique_first[x] = 1 unique_second[y] = 1 } e1 = unique_first.keys.sort.map{|x| x.chr} * "" e2 = unique_second.keys.sort.map{|x| x.chr} * "" print e1, "\n", e2, "\n" # 71 bytes. decoded = "\36\"$Z[`a".bytes.product("(),./dhjk".bytes).map{|x,y|"\e[#{x};#{y}m"} print decoded, "\n" end