From 49d54f051db36cd020bfceb474065748309f9830 Mon Sep 17 00:00:00 2001 From: Jia Date: Wed, 14 Feb 2024 23:00:46 +0800 Subject: [PATCH 1/6] v2. as of 14 Feb --- script.js | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 3 deletions(-) diff --git a/script.js b/script.js index bbe8a293..b0766e7b 100644 --- a/script.js +++ b/script.js @@ -1,4 +1,66 @@ -var main = function (input) { - var myOutputValue = 'hello world'; - return myOutputValue; +//Game: Beat That! +//2 players, 2 dices +//2 game modes: Each player rolls once and player picks the order of the numbers rolled to get the biggest value +//Player with higher combined number wins +//Calculate number of wins + +//2 players +var player1 = "player1"; +var player2 = "player2"; +var player1DiceRoll = []; +var player2DiceRoll = []; +var player1Number; +var player2Number; + +//2 game modes, start with first player +var modeRollDice = "modeRollDice"; +var modeChooseDiceOrder = "modeChooseDiceOrder"; +var currentPlayer = "player1"; + +//Game starts with rolling of dice +var gameMode = modeRollDice; + +var rollSingleDice = function () { + return Math.floor(Math.random() * 6) + 1; }; + +var rollDiceAndAssign = function () { + var getDiceNumber = [rollSingleDice(), rollSingleDice()]; + + if (currentPlayer === "player1") { + player1DiceRoll = getDiceNumber; + } else { + player2DiceRoll = getDiceNumber; + } + return getDiceNumber; +}; +var getDiceNumber = rollDiceAndAssign(); +console.log("Player 1's dice numbers are", player1DiceRoll); + +//Player picks the order of the numbers rolled (1 for first number first, 2 for second number first) +//orderChosen is the user input (1 or 2) + +var getPlayerNumber = function (orderChosen) { + var diceArray; + if (currentPlayer === "Player 1") { + diceArray = player1DiceRoll; + } else { + diceArray = player2DiceRoll; + } + + if (orderChosen === 1) { + playerNumber = combineNumbers(diceArray[0], diceArray[1]); + } else { + playerNumber = combineNumbers(diceArray[1], diceArray[0]); + } + + if (currentPlayer === 1) { + player1Number = playerNumber; + } else { + player2Number = playerNumber; + } + return playerNumber; +}; +var orderChosen = 1; +var player1Number = getPlayerNumber(orderChosen); +console.log("Player 1's number:", player1Number); From 854eff86f07df84cf04c046af209e9c96a0bd765 Mon Sep 17 00:00:00 2001 From: Jia Date: Wed, 14 Feb 2024 23:58:56 +0800 Subject: [PATCH 2/6] v3. dice roll, choose order, combine number --- script.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/script.js b/script.js index b0766e7b..677affcc 100644 --- a/script.js +++ b/script.js @@ -42,16 +42,16 @@ console.log("Player 1's dice numbers are", player1DiceRoll); var getPlayerNumber = function (orderChosen) { var diceArray; - if (currentPlayer === "Player 1") { + if (currentPlayer === "player1") { diceArray = player1DiceRoll; } else { diceArray = player2DiceRoll; } if (orderChosen === 1) { - playerNumber = combineNumbers(diceArray[0], diceArray[1]); + playerNumber = Number(String(diceArray[0]) + String(diceArray[1])); } else { - playerNumber = combineNumbers(diceArray[1], diceArray[0]); + playerNumber = Number(String(diceArray[1]) + String(diceArray[0])); } if (currentPlayer === 1) { @@ -61,6 +61,14 @@ var getPlayerNumber = function (orderChosen) { } return playerNumber; }; -var orderChosen = 1; +var orderChosen = 2; var player1Number = getPlayerNumber(orderChosen); console.log("Player 1's number:", player1Number); + +var determineWinner = function () { + if (player1Number > player2Number) { + return "player1"; + } else { + return "player2"; + } +}; From bc4aa0ea6e924b78c0330285b56c7c1ac86f8439 Mon Sep 17 00:00:00 2001 From: Jia Date: Thu, 15 Feb 2024 02:23:12 +0800 Subject: [PATCH 3/6] complete game before tracking number of wins --- script.js | 71 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 13 deletions(-) diff --git a/script.js b/script.js index 677affcc..3658c4fa 100644 --- a/script.js +++ b/script.js @@ -5,8 +5,8 @@ //Calculate number of wins //2 players -var player1 = "player1"; -var player2 = "player2"; +var player1 = "Player 1"; +var player2 = "Player 2"; var player1DiceRoll = []; var player2DiceRoll = []; var player1Number; @@ -15,7 +15,7 @@ var player2Number; //2 game modes, start with first player var modeRollDice = "modeRollDice"; var modeChooseDiceOrder = "modeChooseDiceOrder"; -var currentPlayer = "player1"; +var currentPlayer = "Player 1"; //Game starts with rolling of dice var gameMode = modeRollDice; @@ -27,22 +27,20 @@ var rollSingleDice = function () { var rollDiceAndAssign = function () { var getDiceNumber = [rollSingleDice(), rollSingleDice()]; - if (currentPlayer === "player1") { + if (currentPlayer === "Player 1") { player1DiceRoll = getDiceNumber; } else { player2DiceRoll = getDiceNumber; } return getDiceNumber; }; -var getDiceNumber = rollDiceAndAssign(); -console.log("Player 1's dice numbers are", player1DiceRoll); //Player picks the order of the numbers rolled (1 for first number first, 2 for second number first) //orderChosen is the user input (1 or 2) var getPlayerNumber = function (orderChosen) { var diceArray; - if (currentPlayer === "player1") { + if (currentPlayer === "Player 1") { diceArray = player1DiceRoll; } else { diceArray = player2DiceRoll; @@ -54,21 +52,68 @@ var getPlayerNumber = function (orderChosen) { playerNumber = Number(String(diceArray[1]) + String(diceArray[0])); } - if (currentPlayer === 1) { + if (currentPlayer === "Player 1") { player1Number = playerNumber; } else { player2Number = playerNumber; } return playerNumber; }; -var orderChosen = 2; -var player1Number = getPlayerNumber(orderChosen); -console.log("Player 1's number:", player1Number); +//determine winner var determineWinner = function () { if (player1Number > player2Number) { - return "player1"; + return "Player 1"; } else { - return "player2"; + return "Player 2"; + } +}; + +//yay, we are into the main function! + +var main = function (input) { + //Roll dice first + if (gameMode === modeRollDice) { + var getDiceNumber = rollDiceAndAssign(); + + gameMode = modeChooseDiceOrder; + var diceRollMessage = `Welcome ${currentPlayer}!
+Your dice numbers are:
+Dice 1: ${getDiceNumber[0]}
+Dice 2: ${getDiceNumber[1]}
+Indicate your choice of order by entering 1 or 2 to assume the first value of the combined number.`; + return diceRollMessage; + } + + //Combine numbers based on chosen order and show user combined number + if (gameMode === modeChooseDiceOrder) { + var orderChosen = Number(input); + if (isNaN(orderChosen) || (orderChosen !== 1 && orderChosen !== 2)) { + var returnErrorMessage = + "Please enter either 1 or 2 to indicate your preferred order."; + return returnErrorMessage; + } + } + var playerNumber = getPlayerNumber(orderChosen); + var combinedNumberMessage = `${currentPlayer}, you chose Dice ${orderChosen} as your first value.
+ Your number is therefore ${playerNumber}.
`; + if (currentPlayer === "Player 1") { + currentPlayer = "Player 2"; + gameMode = modeRollDice; + return ( + combinedNumberMessage + + "It is now Player 2's turn. Press submit to roll your dice." + ); + } + + //Determine winner and reset game + if (currentPlayer === "Player 2") { + var winningPlayer = determineWinner(); + currentPlayer = "Player 1"; + gameMode = modeRollDice; + var winningMessage = `${winningPlayer} has won.
+ Player 1's number is ${player1Number} while Player 2's number is ${player2Number}.
+ Press submit to play again.`; + return winningMessage; } }; From 8c4db36161ff663d79408c92ce8b6238831db5eb Mon Sep 17 00:00:00 2001 From: Jia Date: Thu, 15 Feb 2024 02:56:32 +0800 Subject: [PATCH 4/6] added game instructions --- index.html | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 74f9da2a..cadc39ba 100644 --- a/index.html +++ b/index.html @@ -18,7 +18,7 @@ } #container { - background-color: pink; + background-color: rgb(235, 220, 252); margin: 40px auto; max-width: 800px; padding: 38px 31px; @@ -49,7 +49,7 @@ -

Basics: Beat That! 🚀

+

Basics: Beat That! 🎲

Input:

@@ -58,6 +58,21 @@

Basics: Beat That! 🚀

Output:

+ +
+

Hello! Welcome to Beat That! 🎲

+

Grab a friend because this is a two-player game.👥

+

+ The rules are simple. Roll two dice, and create a two-digit number from + the numbers rolled. +

+

The player with the highest number wins! 🏆

+

Ready to play? Player 1, click submit to start the game.

+
From 4a3936ca3b6c1aec13c3078766b60f594c1267bc Mon Sep 17 00:00:00 2001 From: Jia Date: Thu, 15 Feb 2024 03:35:16 +0800 Subject: [PATCH 5/6] final html --- index.html | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index cadc39ba..d905e532 100644 --- a/index.html +++ b/index.html @@ -62,16 +62,25 @@

Basics: Beat That! 🎲

.centered-text { text-align: center; } + .hidden-text { + display: none; + } -
-

Hello! Welcome to Beat That! 🎲

-

Grab a friend because this is a two-player game.👥

-

+

+

Hello! Welcome to Beat That! 🎲

+

+ Grab a friend because this is a two-player game.👥 +

+

The rules are simple. Roll two dice, and create a two-digit number from the numbers rolled.

-

The player with the highest number wins! 🏆

-

Ready to play? Player 1, click submit to start the game.

+

+ The player with the highest number wins! 🏆 +

+

+ Ready to play? Player 1, click submit to start the game. +

@@ -89,6 +98,12 @@

Basics: Beat That! 🎲

// Reset input value input.value = ""; + + // Hide game instructions text once the game starts + var instructions = document.querySelectorAll(".instruction-text"); + instructions.forEach(function (instruction) { + instruction.classList.add("hidden-text"); + }); }); From 5c5723a5da2230697525831eb3b576c5c1e56025 Mon Sep 17 00:00:00 2001 From: Jia Date: Thu, 15 Feb 2024 03:35:30 +0800 Subject: [PATCH 6/6] final js --- script.js | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/script.js b/script.js index 3658c4fa..9df32929 100644 --- a/script.js +++ b/script.js @@ -11,6 +11,11 @@ var player1DiceRoll = []; var player2DiceRoll = []; var player1Number; var player2Number; +var player1WinCount = 0; +var player2WinCount = 0; +var player1LoseCount = 0; +var player2LoseCount = 0; +var drawCount = 0; //2 game modes, start with first player var modeRollDice = "modeRollDice"; @@ -64,8 +69,10 @@ var getPlayerNumber = function (orderChosen) { var determineWinner = function () { if (player1Number > player2Number) { return "Player 1"; - } else { + } else if (player2Number > player1Number) { return "Player 2"; + } else { + return "Draw"; } }; @@ -109,11 +116,26 @@ Indicate your choice of order by entering 1 or 2 to assume the first value of th //Determine winner and reset game if (currentPlayer === "Player 2") { var winningPlayer = determineWinner(); + if (winningPlayer === "Player 1") { + player1WinCount += 1; + player2LoseCount += 1; + var winningMessage = `${winningPlayer} has won this round. 👻`; + } else if (winningPlayer === "Player 2") { + player1LoseCount += 1; + player2WinCount += 1; + var winningMessage = `${winningPlayer} has won this round. 🥷`; + } else { + drawCount += 1; + var winningMessage = "No one won this round. It's a draw. 🤝"; + } currentPlayer = "Player 1"; gameMode = modeRollDice; - var winningMessage = `${winningPlayer} has won.
- Player 1's number is ${player1Number} while Player 2's number is ${player2Number}.
+ var tallyWinMessage = + winningMessage + + `
Player 1's number is ${player1Number} while Player 2's number is ${player2Number}.
+ Player 1 - Wins: ${player1WinCount} || Losses ${player1LoseCount}
+ Player 2 - Wins: ${player2WinCount} || Losses ${player2LoseCount}
Press submit to play again.`; - return winningMessage; + return tallyWinMessage; } };