2023-06-20 21:53:54 +00:00
|
|
|
package chess
|
|
|
|
|
2023-06-27 20:32:24 +00:00
|
|
|
import (
|
|
|
|
"mchess_server/types"
|
|
|
|
)
|
2023-06-20 21:53:54 +00:00
|
|
|
|
|
|
|
type Queen struct {
|
|
|
|
Color types.ChessColor
|
|
|
|
}
|
|
|
|
|
2023-06-27 20:32:24 +00:00
|
|
|
func (q Queen) GetAllAttackedSquares(board Board, fromSquare types.Coordinate) []types.Coordinate {
|
|
|
|
return q.GetAllNonBlockedMoves(board, fromSquare)
|
|
|
|
}
|
|
|
|
|
2023-06-20 21:53:54 +00:00
|
|
|
func (q Queen) GetColor() types.ChessColor {
|
|
|
|
return q.Color
|
|
|
|
}
|
|
|
|
|
2023-06-27 20:32:24 +00:00
|
|
|
func (q Queen) GetAllNonBlockedMoves(board Board, fromSquare types.Coordinate) []types.Coordinate {
|
|
|
|
squares := board.GetNonBlockedRowAndColumn(fromSquare)
|
|
|
|
squares = append(squares, board.GetNonBlockedDiagonals(fromSquare)...)
|
|
|
|
return squares
|
2023-06-20 21:53:54 +00:00
|
|
|
}
|
2023-07-05 19:15:01 +00:00
|
|
|
|
|
|
|
func (q Queen) AfterMoveAction(board *Board, fromSquare types.Coordinate) {}
|