forked from rocketacademy/basics-beat-that
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
184 lines (165 loc) · 5.07 KB
/
Copy pathscript.js
File metadata and controls
184 lines (165 loc) · 5.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
//Create Game Mode: 1. Roll 2 dice. and 2. Choose Dice Order
var GAME_MODE_ROLL_DICE = "Game mode: Roll 2 dices.";
var GAME_MODE_CHOOSE_DICE_ORDER = "Game mode: Choose dice order.";
var GAME_MODE_COMPARE_PLAYERS_SCORES =
"Game mode: Compare all players' scores.";
var currentGameMode = GAME_MODE_ROLL_DICE;
// Player state
var currentPlayer = 1;
var totalPlayers = 3;
var Player1 = "Player 1 ";
var Player2 = "Player 2 ";
var Player3 = "Player 3 ";
//Game Text
var gameText_ChooseOrderText =
"Please choose the order of the dice by entering 1 or 2.";
var gameText_SubmitToRollDices = "Click submit to roll the dices.";
//Store scores of both players.
var playerScoreTotal = [];
//Restart game
var restartGame = function () {
currentPlayer = 1;
currentGameMode = GAME_MODE_ROLL_DICE;
playerScoreTotal = [];
};
// Roll Dice
var rollDice = function () {
var randomInteger = Math.floor(Math.random() * 6);
var randomDiceNumber = randomInteger + 1;
// Convert number to string.
var convertRandomDiceNumberToString = randomDiceNumber.toString();
console.log("dice number: ", convertRandomDiceNumberToString);
return convertRandomDiceNumberToString;
};
// Store dice values in array.
var currentPlayerRolls = [];
// Roll 2 dices
var rollTwoDices = function () {
var counter = 0;
while (counter < 2) {
currentPlayerRolls.push(rollDice());
counter += 1;
}
return (
"Hi Player " +
currentPlayer +
". Your rolls are Dice 1: " +
currentPlayerRolls[0] +
" and Dice 2: " +
currentPlayerRolls[1] +
"." +
"<br><br>" +
gameText_ChooseOrderText
);
};
//Input validation - if input number is not 1 or 2.
var inputNumber = function (input) {
if (input !== 1 || input !== 2) {
return gameText_ChooseOrderText;
}
};
//Combined dice roll number: Player decide which dice number to go first.
var combineDiceNumber = function (playerChoice) {
if (playerChoice == 1) {
return Number(currentPlayerRolls[0] + currentPlayerRolls[1]);
} else return Number(currentPlayerRolls[1] + currentPlayerRolls[0]);
};
//Compare players' dice value.
var ComparePlayersScores = function () {
//pull out the highest number from the playscore array
var winningNumber = Math.max(...playerScoreTotal);
compareScoresGameMessage =
Player1 +
" Number: " +
playerScoreTotal[0] +
". " +
Player2 +
" Number: " +
playerScoreTotal[1] +
". " +
Player3 +
" Number: " +
playerScoreTotal[2] +
//What is the biggest number?
". <br><BR> The winner with number '" +
winningNumber +
"' wins! 🥳";
//player 1 wins
if (playerScoreTotal[0] === winningNumber) {
compareScoresGameMessage =
compareScoresGameMessage + "<br><BR> " + Player1 + "wins! 🥳";
}
//player 2 wins
if (playerScoreTotal[1] === winningNumber) {
compareScoresGameMessage =
compareScoresGameMessage + "<br><BR> " + Player2 + "wins! 🥳";
}
//player 3 wins
if (playerScoreTotal[2] === winningNumber) {
compareScoresGameMessage =
compareScoresGameMessage + "<br><BR> " + Player3 + "wins! 🥳";
}
return compareScoresGameMessage;
};
// Check Game Mode. Start Game with Dice Roll.
var main = function (input) {
console.log("Who is playing: ", currentPlayer);
var outputGameMessage = "";
// Game starts from scratch.
if (currentGameMode === GAME_MODE_ROLL_DICE) {
console.log(GAME_MODE_ROLL_DICE);
//Players keys info in input, do not allow player to start game.
if (input !== "") {
return gameText_SubmitToRollDices;
} else {
currentGameMode = GAME_MODE_CHOOSE_DICE_ORDER;
}
return (outputGameMessage = rollTwoDices());
}
// After player X roll dice.
if (currentGameMode === GAME_MODE_CHOOSE_DICE_ORDER) {
console.log(GAME_MODE_CHOOSE_DICE_ORDER);
if (input == 1 || input == 2) {
playerScoreTotal.push(combineDiceNumber(input));
console.log("player combined numbers", playerScoreTotal);
//clear dice value array for next player
currentPlayerRolls = [];
outputGameMessage =
"Hi Player " +
currentPlayer +
"! Your number is: " +
playerScoreTotal[currentPlayer - 1];
(".");
} else {
return inputNumber(input);
}
// Player state: player X
if (currentPlayer < totalPlayers) {
currentPlayer += 1;
currentGameMode = GAME_MODE_ROLL_DICE;
return (
outputGameMessage +
"<br><br> It is now Player " +
currentPlayer +
"'s turn. " +
gameText_SubmitToRollDices
);
}
//if Player reaches Player 2 or 3.
if (currentPlayer === totalPlayers) {
currentGameMode = GAME_MODE_COMPARE_PLAYERS_SCORES;
console.log(GAME_MODE_COMPARE_PLAYERS_SCORES);
console.log("players score", playerScoreTotal);
return (
outputGameMessage + "<br><BR> Click submit to see who is the winner!"
);
}
}
if ((currentGameMode = GAME_MODE_COMPARE_PLAYERS_SCORES)) {
console.log(GAME_MODE_COMPARE_PLAYERS_SCORES);
outputGameMessage = ComparePlayersScores();
//reset game,
restartGame();
return outputGameMessage;
}
};