96 lines
3.4 KiB
C#
96 lines
3.4 KiB
C#
using PathFinding;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Gameboard.ShogiUI.Sockets.Models
|
|
{
|
|
public static class MoveSets
|
|
{
|
|
public static readonly List<PathFinding.Move> King = new(8)
|
|
{
|
|
new PathFinding.Move(Direction.Up),
|
|
new PathFinding.Move(Direction.Left),
|
|
new PathFinding.Move(Direction.Right),
|
|
new PathFinding.Move(Direction.Down),
|
|
new PathFinding.Move(Direction.UpLeft),
|
|
new PathFinding.Move(Direction.UpRight),
|
|
new PathFinding.Move(Direction.DownLeft),
|
|
new PathFinding.Move(Direction.DownRight)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> Bishop = new(4)
|
|
{
|
|
new PathFinding.Move(Direction.UpLeft, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.UpRight, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.DownLeft, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.DownRight, Distance.MultiStep)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> PromotedBishop = new(8)
|
|
{
|
|
new PathFinding.Move(Direction.Up),
|
|
new PathFinding.Move(Direction.Left),
|
|
new PathFinding.Move(Direction.Right),
|
|
new PathFinding.Move(Direction.Down),
|
|
new PathFinding.Move(Direction.UpLeft, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.UpRight, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.DownLeft, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.DownRight, Distance.MultiStep)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> GoldGeneral = new(6)
|
|
{
|
|
new PathFinding.Move(Direction.Up),
|
|
new PathFinding.Move(Direction.UpLeft),
|
|
new PathFinding.Move(Direction.UpRight),
|
|
new PathFinding.Move(Direction.Left),
|
|
new PathFinding.Move(Direction.Right),
|
|
new PathFinding.Move(Direction.Down)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> Knight = new(2)
|
|
{
|
|
new PathFinding.Move(Direction.KnightLeft),
|
|
new PathFinding.Move(Direction.KnightRight)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> Lance = new(1)
|
|
{
|
|
new PathFinding.Move(Direction.Up, Distance.MultiStep),
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> Pawn = new(1)
|
|
{
|
|
new PathFinding.Move(Direction.Up)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> Rook = new(4)
|
|
{
|
|
new PathFinding.Move(Direction.Up, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.Left, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.Right, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.Down, Distance.MultiStep)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> PromotedRook = new(8)
|
|
{
|
|
new PathFinding.Move(Direction.Up, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.Left, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.Right, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.Down, Distance.MultiStep),
|
|
new PathFinding.Move(Direction.UpLeft),
|
|
new PathFinding.Move(Direction.UpRight),
|
|
new PathFinding.Move(Direction.DownLeft),
|
|
new PathFinding.Move(Direction.DownRight)
|
|
};
|
|
|
|
public static readonly List<PathFinding.Move> SilverGeneral = new(4)
|
|
{
|
|
new PathFinding.Move(Direction.Up),
|
|
new PathFinding.Move(Direction.UpLeft),
|
|
new PathFinding.Move(Direction.UpRight),
|
|
new PathFinding.Move(Direction.DownLeft),
|
|
new PathFinding.Move(Direction.DownRight)
|
|
};
|
|
}
|
|
}
|