diff --git a/main.js b/main.js index f242959..5186d4f 100644 --- a/main.js +++ b/main.js @@ -14,111 +14,171 @@ var playerLife = 5; var hackerLife = 5; // Message to be displayed when the game is over -var hackerWinnerMessage = "Write the message here"; -var playerWinnerMessage = "Write the message here"; +var hackerWinnerMessage = "Oh no! The hacker won!"; +var playerWinnerMessage = "You Won!! Congratulations!!"; // ---------------Game code starts here ---------------// -// declare a few handy variables like we've done :p - var playerStartLife = parseInt(playerLife); var hackerStartLife = parseInt(hackerLife); - -// we will declare the functions for you and you will complete those +var cardSelected = false updateScores(); - -// you learnt DOM manipulation right? here's an example of the same. Go ahead and use manipulate the DOM! +document.querySelector(".game-board").classList.add(".before-game"); +var allCardElements = document.querySelectorAll(".card"); +document.querySelector(".next-turn").removeAttribute("disabled"); document.querySelector(".game-board").classList.add("before-game"); - var allCardElements = document.querySelectorAll(".card"); - -// Adds click handler to all player card elements so that your cards are actionable - - -// An example of a function that controls what would happen when a card is clicked +for(let i=0; i cardClicked(e.target)); + } +} function cardClicked(cardEl) { - if(cardSelected) { return; } cardSelected = true; - cardEl.classList.add("played-card"); - document.querySelector(".game-board").classList.add("card-selected"); - - // Yes JS is cool and this would allow you to wait 500ms before revealing the hacker power setTimeout(function(){ revealHackerPower(); },500) - setTimeout(function(){ revealPlayerPower(); },800) - setTimeout(function(){ compareCards(); }, 1400); } -// Now write a function that shows the power level on the player card function revealPlayerPower(){ - + for(let i=0; ihackerPoint) { + playedCard.classList.add("better-card"); + hackerCard.classList.add("worse-card"); + hackerIcon.classList.add("ouch"); + hackerLife -= (playerPoint-hackerPoint); + } else if(hackerPoint>playerPoint) { + playedCard.classList.add("worse-card"); + hackerCard.classList.add("better-card"); + playerIcon.classList.add("ouch"); + playerLife -= (hackerPoint-playerPoint); + } else { + playedCard.classList.add("tie-card"); + hackerCard.classList.add("tie-card"); + } + updateScores(); + if(playerLife<=0) { + gameOver(0); + } else if(hackerLife<=0) { + gameOver(1); + } + document.querySelector(".next-turn").removeAttribute("disabled"); } -//Use conditional statements and complete the function that shows the winner message function gameOver(winner) { - + const winMessage = document.querySelector(".winner-message"); + if(winner == 0) { + winMessage.textContent = hackerWinnerMessage; + } else if (winner == 1) { + winMessage.textContent = playerWinnerMessage; + } + document.querySelector(".game-board").classList.remove("during-game"); + document.querySelector(".game-board").classList.add("game-over"); + document.querySelector(".winner-section").style.display = "flex"; } // Write a function that starts the game function startGame() { - + document.querySelector(".game-board").classList.remove(".before-game"); + document.querySelector(".game-board").classList.add("during-game"); + playTurn() } // Now write a function that starts the game over from scratch function restartGame(){ - + playerLife = parseInt(playerStartLife); + hackerLife = parseInt(hackerStartLife); + let playedCard = document.querySelector(".played-card"); + playedCard.classList.remove("played-card"); + document.querySelector(".game-board").classList.remove("card-selected"); + cardSelected = false; + document.querySelector(".game-board").classList.remove("game-over"); + document.querySelector(".game-board").classList.add("before-game"); + document.querySelector(".winner-section").style.display = "none"; + document.querySelector(".next-turn").removeAttribute("disabled"); + for(let i=0; i