var color_names = ("white black dark-blue green red dark-red purple orange " + "yellow lime teal cyan blue magenta dark-gray light-gray").split(" "); var all_color_hue_order = "dark-red red orange yellow lime green teal cyan blue dark-blue purple magenta black dark-gray light-gray white".split(" "); var all_color_inv_order = "cyan teal blue dark-blue purple magenta dark-red red orange yellow lime green white light-gray dark-gray black".split(" "); var color_hue_order = "dark-red red orange yellow lime cyan teal blue dark-blue purple magenta".split(" "); var color_inv_order = "cyan teal blue dark-blue purple magenta dark-red red orange yellow lime green".split(" "); var gray_names = ("black dark-gray light-gray white").split(" ") var fire_names = ("black dark-red red orange yellow white cyan").split(" ") var red_names = ("black dark-red red").split(" ") var yellow_names = ("black orange yellow white").split(" ") var green_names = ("teal green lime").split(" ") var blue_names = ("black dark-blue blue").split(" ") var purple_names = ("dark-blue purple magenta red").split(" ") var dark_gray_names = ("black dark-blue teal dark-gray light-gray white").split(" ") var letters = "abcdefghijklmnop"; var colors = {} color_names.forEach(function(name, i){ colors[name] = i }) function get_inverse (n) { return colors[all_color_inv_order.indexOf(color_names[n])] } function all_hue (n) { return colors[all_color_hue_order[mod(n, 16)|0]] } function all_inv_hue (n) { return colors[all_color_inv_order[mod(n, 16)|0]] } function hue (n) { return colors[color_hue_order[mod(n, 11)|0]] } function inv_hue (n) { return colors[color_inv_order[mod(n, 11)|0]] } function gray (n) { return colors[gray_names[mod(n, 4)|0]] } function fire (n) { return colors[fire_names[mod(n, 7)|0]] } function red (n) { return colors[red_names[mod(n, 3)|0]] } function yellow (n) { return colors[yellow_names[mod(n, 4)|0]] } function green (n) { return colors[green_names[mod(n, 3)|0]] } function blue (n) { return colors[blue_names[mod(n, 3)|0]] } function purple (n) { return colors[purple_names[mod(n, 4)|0]] } function dark_gray (n) { return colors[dark_gray_names[mod(n, 4)|0]] }