mirror of
https://github.com/lov3b/Schack.git
synced 2025-01-18 21:00:11 +01:00
Lös problem där bönders attack inte registereas av kung
This commit is contained in:
parent
81983ddbd7
commit
c0e9a30918
@ -228,7 +228,7 @@ public class Board extends JPanel implements MouseListener {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// Lägg till alla attacker för respektive färg
|
// Lägg till alla attacker för respektive färg
|
||||||
attacks.addAll(piece.validAttacks(pieces));
|
attacks.addAll(piece.validAttacks(pieces, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ public class Pawn extends PieceKnownIfMoved {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<Point> validAttacks(Piece[][] pieces) {
|
public ArrayList<Point> validAttacks(Piece[][] pieces, boolean shouldNotCareIfAttackSpaceIsEmptyOrNot) {
|
||||||
ArrayList<Point> movable = new ArrayList<>();
|
ArrayList<Point> movable = new ArrayList<>();
|
||||||
|
|
||||||
// Kolla ifall vi kan ta någon
|
// Kolla ifall vi kan ta någon
|
||||||
@ -22,7 +22,8 @@ public class Pawn extends PieceKnownIfMoved {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Piece piece = pieces[pos.x][pos.y];
|
Piece piece = pieces[pos.x][pos.y];
|
||||||
if (piece == null || piece.isWhite() != piece.isWhite()) {
|
if (piece == null || piece.isWhite() != this.isWhite()
|
||||||
|
|| (shouldNotCareIfAttackSpaceIsEmptyOrNot && piece.isWhite() != this.isWhite())) {
|
||||||
movable.add(pos);
|
movable.add(pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,9 +69,10 @@ public abstract class Piece {
|
|||||||
* Ger tillbaks alla ställen pjäsen kan attackera
|
* Ger tillbaks alla ställen pjäsen kan attackera
|
||||||
*
|
*
|
||||||
* @param pieces
|
* @param pieces
|
||||||
|
* @param shouldNotCareIfAttackSpaceIsEmptyOrNot Ifall man inte ska bry sig ifall
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ArrayList<Point> validAttacks(Piece[][] pieces) {
|
public ArrayList<Point> validAttacks(Piece[][] pieces, boolean shouldNotCareIfAttackSpaceIsEmptyOrNot) {
|
||||||
return validMoves(pieces, false);
|
return validMoves(pieces, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,6 +111,7 @@ public abstract class Piece {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Lägg till move ifall det går, alltså inte är schack där
|
* Lägg till move ifall det går, alltså inte är schack där
|
||||||
|
*
|
||||||
* @param pos drag att lägga till ifall det går
|
* @param pos drag att lägga till ifall det går
|
||||||
* @param movable lägger till drag i denna ArrayList<Point>
|
* @param movable lägger till drag i denna ArrayList<Point>
|
||||||
* @param pieces Piece[][] över brädet
|
* @param pieces Piece[][] över brädet
|
||||||
@ -204,7 +206,7 @@ public abstract class Piece {
|
|||||||
for (Piece piece : pieceArr) {
|
for (Piece piece : pieceArr) {
|
||||||
if (piece != null && piece.isWhite != this.isWhite()) {
|
if (piece != null && piece.isWhite != this.isWhite()) {
|
||||||
// Lägg till alla attacker för mostståndaren
|
// Lägg till alla attacker för mostståndaren
|
||||||
enemyAttacks.addAll(piece.validAttacks(pieces));
|
enemyAttacks.addAll(piece.validAttacks(pieces, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -226,7 +228,7 @@ public abstract class Piece {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return true ifall pjäsen är vit
|
* @return true ifall pjäsen är vit
|
||||||
*/
|
*/
|
||||||
public boolean isWhite() {
|
public boolean isWhite() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user