ChineseChess.Core/ChessboardPosition.cs

(完整代码) 1KB

namespace ChineseChess.Core
{
    public struct ChessboardPosition
    {
        public int Col;
        public int Row;

        public ChessboardPosition(int col, int row)
        {
            Col=col;
            Row=row;
        }

        public override bool Equals(object obj)
        {
            return obj is ChessboardPosition pos 
                && pos.Col == this.Col 
                && pos.Row == this.Row;
        }

        public override int GetHashCode()
        {
            return Col ^ Row;
        }

        public override string ToString()
        {
            return $"({Row}, {Col})";
        }

        public static bool operator ==(ChessboardPosition left, ChessboardPosition right)
        {
            return left.Equals(right);
        }

        public static bool operator !=(ChessboardPosition left, ChessboardPosition right)
        {
            return !(left==right);
        }

        public static ChessboardPosition operator +(ChessboardPosition left, ChessboardPosition right)
        {
            return new ChessboardPosition(left.Col + right.Col, left.Row + right.Row);
        }

        public static ChessboardPosition operator -(ChessboardPosition left, ChessboardPosition right)
        {
            return new ChessboardPosition(left.Col - right.Col, left.Row - right.Row);
        }

        public static ChessboardPosition Zero => new ChessboardPosition();
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。