Files
advent-of-code-2024/15/WarehouseWoes/Direction.cs
T

26 lines
753 B
C#
Raw Normal View History

2024-12-16 23:51:43 -06:00
namespace WarehouseWoes;
record Direction(int Xd, int Yd)
{
private const char UpCharacter = '^';
private const char RightCharacter = '>';
private const char DownCharacter = 'v';
private const char LeftCharacter = '<';
private static readonly Direction Up = new(0, -1);
private static readonly Direction Down = new(0, 1);
public static readonly Direction Left = new(-1, 0);
public static readonly Direction Right = new(1, 0);
public static Direction From(char character)
{
return character switch
{
UpCharacter => Up,
RightCharacter => Right,
DownCharacter => Down,
LeftCharacter => Left,
_ => throw new ArgumentException(@$"{nameof(character)} is not a valid: {character}"),
};
}
}