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 red_names = ("black dark-red red orange yellow white cyan").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 red (n) { return colors[red_names[mod(n, 7)|0]] }