You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.2 KiB

public class Move {
//source and dest coordinates
int sourceIndex;
int destIndex;
public Move(int sourceIndex, int destIndex) {
this.sourceIndex = sourceIndex;
this.destIndex = destIndex;
}
public Move(int sourceColumn, int sourceRow, int destColumn, int destRow) {
sourceIndex = sourceRow * 12 + sourceColumn + 2 + 12*2;
destIndex = destRow * 12 + destColumn + 2 + 12*2;
}
public int getSourceIndex() {
return sourceIndex;
}
public int getDestIndex() {
return destIndex;
}
public int getSourceRow() {
return sourceIndex / 12 - 2;
}
public int getSourceCol() {
return sourceIndex % 12 - 2;
}
public int getDestRow() {
return destIndex / 12 - 2;
}
public int getDestCol() {
return destIndex % 12 - 2;
}
private String letterFor(int col) {
return "abcdefgh".substring(col, col+1);
}
//returns something like e2-e4
public String toString() {
return letterFor(getSourceCol())+(getSourceRow()+1) + "-" + letterFor(getDestCol())+(getDestRow()+1);
}
public boolean equals(Object obj) {
if (obj instanceof Move) {
Move move = (Move)obj;
return (move.sourceIndex == sourceIndex && move.destIndex == destIndex);
}
else {
return false; //not even a move object
}
}
}