DroidFish: Improved tapping behavior.

This commit is contained in:
Peter Osterlund 2012-06-10 15:01:07 +00:00
parent 10c80e802c
commit ddf86c3ad7
3 changed files with 17 additions and 8 deletions

View File

@ -601,14 +601,15 @@ public class ChessBoard extends View {
int p = pos.getPiece(sq);
if (selectedSquare != -1) {
if (sq != selectedSquare) {
if (!myColor(p)) {
Move m = new Move(selectedSquare, sq, Piece.EMPTY);
setSelection(sq);
return m;
}
if (sq == selectedSquare)
return null;
if (!myColor(p)) {
Move m = new Move(selectedSquare, sq, Piece.EMPTY);
setSelection(sq);
return m;
} else {
setSelection(sq);
}
setSelection(-1);
} else {
if (oneTouchMoves) {
ArrayList<Move> moves = new MoveGen().pseudoLegalMoves(pos);

View File

@ -204,8 +204,11 @@ public class EditBoard extends Activity {
piece = -(m.from + 2);
}
if (m.to >= 0) {
if ((m.from < 0) && (pos.getPiece(m.to) == piece))
int oPiece = Piece.swapColor(piece);
if ((m.from < 0) && (pos.getPiece(m.to) == oPiece))
pos.setPiece(m.to, Piece.EMPTY);
else if ((m.from < 0) && (pos.getPiece(m.to) == piece))
pos.setPiece(m.to, oPiece);
else
pos.setPiece(m.to, piece);
}

View File

@ -54,4 +54,9 @@ public class Piece {
public static int makeBlack(int pType) {
return ((pType >= WKING) && (pType <= WPAWN)) ? pType + (BKING - WKING) : pType;
}
public static int swapColor(int pType) {
if (pType == EMPTY)
return EMPTY;
return isWhite(pType) ? pType + (BKING - WKING) : pType - (BKING - WKING);
}
}