var color_names = ("white black dark-blue green red dark-red purple orange " + "yellow lime dark-cyan cyan blue magenta dark-gray light-gray").split(" "); var color_hue_order = ("black dark-blue purple dark-red red orange " + "yellow lime green dark-cyan cyan blue magenta dark-gray light-gray white").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 = ("orange yellow cyan white").split(" ") var green_names = ("dark-cyan 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 dark-cyan dark-gray light-gray white").split(" ") var letters = "abcdefghijklmnop"; var colors = {} color_names.forEach(function(name, i){ colors[name] = i }) function hue (n) { return colors[color_hue_order[mod(n, 16)|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]] }