Skip to content

Instantly share code, notes, and snippets.

@rjindael
Created August 11, 2021 01:36
Show Gist options
  • Save rjindael/f6bab74d3a681e5074b7c9ee52cb712b to your computer and use it in GitHub Desktop.
Save rjindael/f6bab74d3a681e5074b7c9ee52cb712b to your computer and use it in GitHub Desktop.
Broken
using System;
using System.Drawing;
class NameColors
{
private static Color[] BasePalette = {
Color.FromArgb(107, 50, 124),
Color.FromArgb(218, 133, 65),
Color.FromArgb(245, 205, 48),
Color.FromArgb(232, 186, 200),
Color.FromArgb(215, 197, 154)
};
private static Color[] ModernPalette = {
Color.FromArgb(253, 41, 67),
Color.FromArgb(1, 162, 255),
Color.FromArgb(2, 184, 87)
};
private static Color[] OldPalette = {
Color.FromArgb(196, 40, 28),
Color.FromArgb(13, 105, 172),
Color.FromArgb(39, 70, 45)
};
private static int Modulus(int a, int b)
{
return (int)(a - Math.Floor((double)(a / b)) * b);
}
public static Color Compute(string name, bool modernColors = true)
{
Color[] ChosenPalette = (modernColors ? ModernPalette : OldPalette);
Color[] Palette = new Color[BasePalette.Length + ChosenPalette.Length];
BasePalette.CopyTo(Palette, 0);
ChosenPalette.CopyTo(Palette, BasePalette.Length);
int val = 0;
for (int i = 0; i < name.Length; i++)
{
int cv = (int)name[i];
int ri = name.Length - i;
if (Modulus(name.Length, 2) == 1)
{
ri--;
}
if (Modulus(ri, 4) >= 2)
{
cv = -cv;
}
val += cv;
}
return Palette[Modulus(val, Palette.Length)];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment