Chessistics/chessistics-engine/Model/PieceRules.cs

25 lines
697 B
C#
Raw Permalink Normal View History

namespace Chessistics.Engine.Model;
public static class PieceRules
{
public static int GetSocialStatus(PieceKind kind) => kind switch
{
PieceKind.Pawn => 1,
PieceKind.Rook => 5,
PieceKind.Bishop => 3,
PieceKind.Knight => 3,
PieceKind.Queen => 7,
_ => throw new ArgumentOutOfRangeException(nameof(kind))
};
public static int GetMaxRange(PieceKind kind) => kind switch
{
PieceKind.Pawn => 1,
PieceKind.Rook => 2,
PieceKind.Bishop => 2,
PieceKind.Knight => 0, // Knight uses L-shape, not range
PieceKind.Queen => 2,
_ => throw new ArgumentOutOfRangeException(nameof(kind))
};
}