refactor(chess): 重构象棋程序基础结构,使用Nullable重构核心代码
- 更新了多个文件的代码结构和类型定义,提高了代码的健壮性和可维护性 - 优化了事件处理、棋子管理和移动逻辑,为后续功能扩展打下坚实基础 - 修复了一些潜在的空指针异常问题,提高了程序的稳定性 - 修复部分bug
This commit is contained in:
@ -6,15 +6,15 @@ public interface IBoard {
|
||||
public int Cols { get; }
|
||||
|
||||
public class SetPieceEventArgs : EventArgs {
|
||||
public IPiece OldPiece { get; set; }
|
||||
public IPiece NewPiece { get; set; }
|
||||
public Vector2I Pos { get; set; }
|
||||
public IPiece? OldPiece { get; set; }
|
||||
public IPiece? NewPiece { get; set; }
|
||||
public Vector2I Pos { get; set; } = new();
|
||||
}
|
||||
|
||||
public class MoveEventArgs : EventArgs {
|
||||
public IPiece Piece { get; set; }
|
||||
public Vector2I From { get; set; }
|
||||
public Vector2I To { get; set; }
|
||||
public IPiece? Piece { get; set; }
|
||||
public Vector2I From { get; set; } = new();
|
||||
public Vector2I To { get; set; } = new();
|
||||
}
|
||||
|
||||
event EventHandler<IPiece> OnInsert;
|
||||
@ -23,10 +23,10 @@ public interface IBoard {
|
||||
event EventHandler<SetPieceEventArgs> OnSetPiece;
|
||||
|
||||
bool IsPosOutOfRange(Vector2I pos);
|
||||
IPiece GetPiece(Vector2I pos);
|
||||
IPiece SetPiece(IPiece piece, 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);
|
||||
IPiece? RemovePiece(Vector2I pos);
|
||||
void Clear();
|
||||
}
|
||||
|
Reference in New Issue
Block a user