|
|
|
|
@ -39,6 +39,11 @@ function getPieceRecord(x,y){ |
|
|
|
|
return pieceList.find(pieceRecord => pieceRecord.x == x && pieceRecord.y == y); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function nukePieceRecord(pieceRecord) { |
|
|
|
|
const index = pieceList.findIndex(record => record.id == pieceRecord.id); |
|
|
|
|
pieceList.splice(index, 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function updatePieceRecord(pieceRecord) { |
|
|
|
|
const index = pieceList.findIndex(record => record.id == pieceRecord.id); |
|
|
|
|
pieceList[index] = pieceRecord; |
|
|
|
|
@ -109,4 +114,25 @@ function isMoveValid(pieceRecord, x, y){ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function getCasualties(oldX, oldY, newX, newY) { |
|
|
|
|
const directionX = (newX > oldX) ? 1 : -1; |
|
|
|
|
const directionY = (newY > oldY) ? 1 : -1; |
|
|
|
|
|
|
|
|
|
const casualties = new Array(); |
|
|
|
|
|
|
|
|
|
for (let i = 1; i < (Math.abs(newY - oldY) + 1); i++) { |
|
|
|
|
const x = oldX + (i*directionX); |
|
|
|
|
const y = oldY + (i*directionY); |
|
|
|
|
|
|
|
|
|
pieceRecord = getPieceRecord(x,y); |
|
|
|
|
|
|
|
|
|
if (pieceRecord) { |
|
|
|
|
casualties.put(pieceRecord); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
return casualties; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
generateDefaultPositions(); |