diff --git a/javascript/client-only-logic.js b/javascript/client-only-logic.js index d6e465d..c7567f2 100644 --- a/javascript/client-only-logic.js +++ b/javascript/client-only-logic.js @@ -89,9 +89,23 @@ function updatePieces() { pieceList.forEach(pieceRecord => { const piece = document.getElementById("piece" + pieceRecord.id); + //const classList = piece.classList; + + + + + piece.classList.remove("basic"); + piece.classList.remove("queen"); + console.log(pieceRecord.type); + piece.classList.add(pieceRecord.type); + + + safeList.push(piece.id); - movePiece(piece, pieceRecord.x, pieceRecord.y) + movePiece(piece, pieceRecord.x, pieceRecord.y); + + }); @@ -130,7 +144,6 @@ function tileClickEvent(x, y){ const pieceRecord = getPieceRecordFromPiece(selectedPiece); const validity = makeMove(pieceRecord, x,y); - alert(validity); switch (validity) { case 0: alert("neplatný tah!") diff --git a/javascript/game-logic.js b/javascript/game-logic.js index f4ae187..e5df700 100644 --- a/javascript/game-logic.js +++ b/javascript/game-logic.js @@ -6,7 +6,7 @@ B = Player two basic piece P = Player two queen piece */ -pieceList = new Array(); +const pieceList = new Array(); currentPlayer = "white"; function generateDefaultPositions(){ @@ -148,21 +148,45 @@ function continuable(pieceRecord){ const player = pieceRecord.player; const type = pieceRecord.type; - if((type == "queen" || player == "white") && ((getPieceRecord(x+1, y+1) && !getPieceRecord(x+2, y+2) && (y+2) < 8 && (x+2) < 8) || ((getPieceRecord(x-1, y+1) && !getPieceRecord(x-2, y+2) && (y+2) < 8 && (x-2) > 0)))){ + if((type == "queen" || player == "white") && ((getPieceRecord(x+1, y+1) && getPieceRecord(x+1, y+1).player != player && !getPieceRecord(x+2, y+2) && (y+2) < 8 && (x+2) < 8) || ((getPieceRecord(x-1, y+1) && getPieceRecord(x-1, y+1).player != player && !getPieceRecord(x-2, y+2) && (y+2) < 8 && (x-2) > 0)))){ return true; } - if((type == "queen" || player == "black") && ((getPieceRecord(x+1, y-1) && !getPieceRecord(x+2, y-2) && (y-2) > 0 && (x+2) < 8) || ((getPieceRecord(x-1, y-1) && !getPieceRecord(x-2, y-2) && (y-2) > 0 && (x-2) > 0)))){ - alert("bun"); + if((type == "queen" || player == "black") && ((getPieceRecord(x+1, y-1) && getPieceRecord(x+1, y-1).player != player && !getPieceRecord(x+2, y-2) && (y-2) > 0 && (x+2) < 8) || ((getPieceRecord(x-1, y-1) && getPieceRecord(x-1, y-1).player != player && !getPieceRecord(x-2, y-2) && (y-2) > 0 && (x-2) > 0)))){ + return true; } return false; } -function swapPlayers() { - +function getOportunities(pieceRecord){ + const player = pieceRecord.player; + const opportunities = new Array(); + + pieceList.forEach(record => { + if (record.player == player && record != pieceRecord && continuable(record)) { + + opportunities.push(pieceRecord); + } + }); + + return opportunities; +} +function upgradeToQueenIfEligible(pieceRecord) { + const player = pieceRecord.player; + const type = pieceRecord.type; + const y = pieceRecord.y; + + if ((player == "white" && y == 7) || (player == "black" && y == 0) && type == "basic") { + alert("QQQUUUUEEEEEn"); + pieceRecord.type == "queen"; + updatePieceRecord(pieceRecord); + } +} +function swapPlayers() { + currentPlayer = (currentPlayer == "white") ? "black" : "white"; } function makeMove(pieceRecord, x, y){ @@ -181,11 +205,16 @@ function makeMove(pieceRecord, x, y){ nukePieceRecord(casualty); }); + if (casualties.length == 0 && getOportunities(pieceRecord).length != 0) { + //POTŘREBA DODĚLAT SBÍRÁNÍ DÍLKŮ ZA NESKÁKÁNÍ + } const updatedPieceRecord = updatePieceRecordPosition(pieceRecord, x, y); - - if (continuable(updatedPieceRecord)) { + + if (continuable(updatedPieceRecord) && casualties.length > 0) { return 2; } + + upgradeToQueenIfEligible(pieceRecord); return 1; } generateDefaultPositions(); \ No newline at end of file