}
if (position.get(square.knight8()) == EPiece.WN) {
return true;
}
ESquare s = square;
while (s.nw() != null && position.get(s.nw()) == null) {
s = s.nw();
}
if (position.get(s.nw()) == EPiece.WB
|| position.get(s.nw()) == EPiece.WQ) {
return true;
}
s = square;
while (s.ne() != null && position.get(s.ne()) == null) {
s = s.ne();
}
if (position.get(s.ne()) == EPiece.WB
|| position.get(s.ne()) == EPiece.WQ) {
return true;
}
s = square;
while (s.se() != null && position.get(s.se()) == null) {
s = s.se();
}
if (position.get(s.se()) == EPiece.WB
|| position.get(s.se()) == EPiece.WQ) {
return true;
}
s = square;
while (s.sw() != null && position.get(s.sw()) == null) {
s = s.sw();
}
if (position.get(s.sw()) == EPiece.WB
|| position.get(s.sw()) == EPiece.WQ) {
return true;
}
s = square;
while (s.n() != null && position.get(s.n()) == null) {
s = s.n();
}
if (position.get(s.n()) == EPiece.WR
|| position.get(s.n()) == EPiece.WQ) {
return true;
}
s = square;
while (s.e() != null && position.get(s.e()) == null) {
s = s.e();
}
if (position.get(s.e()) == EPiece.WR
|| position.get(s.e()) == EPiece.WQ) {
return true;
}
s = square;
while (s.s() != null && position.get(s.s()) == null) {
s = s.s();
}
if (position.get(s.s()) == EPiece.WR
|| position.get(s.s()) == EPiece.WQ) {
return true;
}
s = square;
while (s.w() != null && position.get(s.w()) == null) {
s = s.w();
}
if (position.get(s.w()) == EPiece.WR
|| position.get(s.w()) == EPiece.WQ) {
return true;
}
} else {
if (position.get(square.nw()) == EPiece.BP) {
return true;
}
if (position.get(square.ne()) == EPiece.BP) {
return true;
}
if (position.get(square.n()) == EPiece.BK) {
return true;
}
if (position.get(square.ne()) == EPiece.BK) {
return true;
}
if (position.get(square.e()) == EPiece.BK) {
return true;
}
if (position.get(square.se()) == EPiece.BK) {
return true;
}
if (position.get(square.s()) == EPiece.BK) {
return true;
}
if (position.get(square.sw()) == EPiece.BK) {
return true;
}
if (position.get(square.w()) == EPiece.BK) {
return true;
}
if (position.get(square.nw()) == EPiece.BK) {
return true;
}
if (position.get(square.knight1()) == EPiece.BN) {
return true;
}
if (position.get(square.knight2()) == EPiece.BN) {
return true;
}
if (position.get(square.knight3()) == EPiece.BN) {
return true;
}
if (position.get(square.knight4()) == EPiece.BN) {
return true;
}
if (position.get(square.knight5()) == EPiece.BN) {
return true;
}
if (position.get(square.knight6()) == EPiece.BN) {
return true;
}
if (position.get(square.knight7()) == EPiece.BN) {
return true;
}
if (position.get(square.knight8()) == EPiece.BN) {
return true;
}
ESquare s = square;
while (s.nw() != null && position.get(s.nw()) == null) {
s = s.nw();
}
if (position.get(s.nw()) == EPiece.BB
|| position.get(s.nw()) == EPiece.BQ) {
return true;
}
s = square;
while (s.ne() != null && position.get(s.ne()) == null) {
s = s.ne();
}
if (position.get(s.ne()) == EPiece.BB
|| position.get(s.ne()) == EPiece.BQ) {
return true;
}
s = square;
while (s.se() != null && position.get(s.se()) == null) {
s = s.se();
}
if (position.get(s.se()) == EPiece.BB
|| position.get(s.se()) == EPiece.BQ) {
return true;
}
s = square;
while (s.sw() != null && position.get(s.sw()) == null) {
s = s.sw();
}
if (position.get(s.sw()) == EPiece.BB
|| position.get(s.sw()) == EPiece.BQ) {
return true;
}
s = square;
while (s.n() != null && position.get(s.n()) == null) {
s = s.n();
}
if (position.get(s.n()) == EPiece.BR
|| position.get(s.n()) == EPiece.BQ) {
return true;
}
s = square;
while (s.e() != null && position.get(s.e()) == null) {
s = s.e();
}
if (position.get(s.e()) == EPiece.BR
|| position.get(s.e()) == EPiece.BQ) {
return true;
}
s = square;
while (s.s() != null && position.get(s.s()) == null) {
s = s.s();
}
if (position.get(s.s()) == EPiece.BR
|| position.get(s.s()) == EPiece.BQ) {
return true;
}
s = square;
while (s.w() != null && position.get(s.w()) == null) {
s = s.w();
}
if (position.get(s.w()) == EPiece.BR
|| position.get(s.w()) == EPiece.BQ) {
return true;
}
}
return false;
}