- 重构了 ChessBoard 和 ChessPiece 类的逻辑 - 添加了新版本的 ChineseChess 库 - 删除了旧版本的 VirtualBoard 和 VirtualPiece 类 - 更新了相关的场景和脚本
33 lines
963 B
C#
33 lines
963 B
C#
using System;
|
|
using Vector2I = Vector.Vector2I;
|
|
|
|
public interface IBoard {
|
|
public int Rows { get; }
|
|
public int Cols { get; }
|
|
|
|
public class SetPieceEventArgs : EventArgs {
|
|
public IPiece OldPiece { get; set; }
|
|
public IPiece NewPiece { get; set; }
|
|
public Vector2I Pos { get; set; }
|
|
}
|
|
|
|
public class MoveEventArgs : EventArgs {
|
|
public IPiece Piece { get; set; }
|
|
public Vector2I From { get; set; }
|
|
public Vector2I To { get; set; }
|
|
}
|
|
|
|
event EventHandler<IPiece> OnInsert;
|
|
event EventHandler<IPiece> OnRemove;
|
|
event EventHandler<MoveEventArgs> OnMove;
|
|
event EventHandler<SetPieceEventArgs> OnSetPiece;
|
|
|
|
bool IsPosOutOfRange(Vector2I pos);
|
|
IPiece GetPiece(Vector2I pos);
|
|
IPiece SetPiece(IPiece piece, Vector2I pos);
|
|
bool InsertPiece(IPiece piece, Vector2I pos);
|
|
bool MovePiece(Vector2I from, Vector2I to);
|
|
IPiece RemovePiece(Vector2I pos);
|
|
void Clear();
|
|
}
|