func (b *TBoard) IsSquareColInCheck(sq square.TSquare, c piece.TColor) bool { ksq := b.Pos.GetKingPos(c) for _, pt := range ALL_PIECE_TYPES { test_piece := piece.FromTypeAndColor(pt, piece.InvColorOf(c)) ptr := GetMoveTablePtr(ksq, test_piece) for !MoveTable[ptr].EndPiece { md := MoveTable[ptr] p := b.PieceAtSq(md.To) if p == test_piece { return true } if piece.ColorOf(p) != piece.NO_COLOR { ptr = md.NextVector } else { ptr++ } } } return false }
func InvTurnOfColor(c piece.TColor) TTurn { return TTurn(piece.InvColorOf(c)) }
func InvTurnOf(t TTurn) TTurn { return TTurn(piece.InvColorOf(piece.TColor(t))) }
func (b *TBoard) IsOppInCheck() bool { return b.IsColInCheck(piece.InvColorOf(b.GetColorOfTurn())) }