another cummit

pull/1/head
jakub 10 months ago
parent 640a3f0086
commit d9263e2b92
  1. 24
      javascript/client-only-logic.js
  2. 65
      javascript/game-logic.js

@ -76,24 +76,11 @@ function generatePieces(){
}); });
} }
function findValidMoves(piece){ function getPieceRecordFromPiece(piece) {
return getPieceRecord(piece.getAttribute("x"), piece.getAttribute("y"));
const x = piece.getAttribute("x");
const y = piece.getAttribute("y");
const pieceRecord = getPieceRecord(x,y);
const directionMultiplier = (pieceRecord.player == "white") ? 1 : -1;
var validMoves = new Array();
//DODĚLAT ZDE!
return validMoves;
} }
function resetPieceSelection() { function resetPieceSelection() {
if(selectedPiece != null){ if(selectedPiece != null){
selectedPiece.classList.remove("selected"); selectedPiece.classList.remove("selected");
@ -107,12 +94,17 @@ function pieceClickEvent(piece){
selectedPiece.classList.add("selected"); selectedPiece.classList.add("selected");
} }
function tileClickEvent(x, y){ function tileClickEvent(x, y){
if(selectedPiece != null){ if(selectedPiece != null){
const pieceRecord = getPieceRecordFromPiece(selectedPiece);
movePiece(selectedPiece, x, y) movePiece(selectedPiece, x, y)
alert(isMoveValid(pieceRecord, x,y))
resetPieceSelection(); resetPieceSelection();
} }
} }

@ -44,4 +44,69 @@ function updatePieceRecord(pieceRecord) {
pieceList[index] = pieceRecord; pieceList[index] = pieceRecord;
} }
function updatePieceRecordPosition(pieceRecord, x, y) {
pieceRecord.x = x;
pieceRecord.y = y;
updatePieceRecord(pieceRecord);
}
function isMoveValid(pieceRecord, x, y){
if(0 > y > 7 || 0 > x > 7){
return false;
}
if (getPieceRecord(x,y)) {
return false;
}
const currentX = pieceRecord.x;
const currentY = pieceRecord.y;
if (Math.abs(y - currentY) != Math.abs(x - currentX)) {
return false;
}
const player = pieceRecord.player;
const type = pieceRecord.type;
//Check correct Y direction if piece is basic
if (currentY > y && player == "white" && type == "basic") {
return false;
}
const directionY = (y > currentY) ? 1 : -1;
const directionX = (x > currentX) ? 1 : -1;
space = 0;
piecesInWay = 0;
for (let i = 1; i < (Math.abs(y-currentY)+1); i++) {
const nowX = currentX + (i*directionX);
const nowY = currentY + (i*directionY);
if (getPieceRecord(nowX, nowY)) {
space = 0;
piecesInWay++;
}else{
space++;
piecesInWay = 0;
}
if(piecesInWay > 1){
return false;
}
if (space > 1 && type == "basic") {
return false;
}
}
return true;
}
generateDefaultPositions(); generateDefaultPositions();
Loading…
Cancel
Save