diff --git a/index.html b/index.html index b0022f4..b7a2745 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,77 @@ RollDice + + + - - + + +
+ +
+ +
+
+
+
+
+
+
+ Card Title +
+
+
+
+
+
+ Card Title +
+
+
+
+
+
+ Card Title +
+
+
+
+
+
+
+
+ Card Title +
+
+
+
+
+
+ Card Title +
+
+
+
+
+
+ Card Title +
+
+
+
+
+
diff --git a/media/Shells_falls-Marcel-829263474.mp3 b/media/Shells_falls-Marcel-829263474.mp3 new file mode 100644 index 0000000..81167a8 Binary files /dev/null and b/media/Shells_falls-Marcel-829263474.mp3 differ diff --git a/media/beep.mp3 b/media/beep.mp3 new file mode 100644 index 0000000..0f07868 Binary files /dev/null and b/media/beep.mp3 differ diff --git a/media/ding.mp4 b/media/ding.mp4 new file mode 100644 index 0000000..43634b3 Binary files /dev/null and b/media/ding.mp4 differ diff --git a/media/tada.mp3 b/media/tada.mp3 new file mode 100644 index 0000000..d12a864 Binary files /dev/null and b/media/tada.mp3 differ diff --git a/node_modules/.DS_Store b/node_modules/.DS_Store index a610279..ed4ad2c 100644 Binary files a/node_modules/.DS_Store and b/node_modules/.DS_Store differ diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 0829cde..b88521b 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -8,6 +8,11 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@materializecss/materialize/-/materialize-1.1.0.tgz", "integrity": "sha512-W2MrDC8mzpMWyP2OpS0RWTWGcLiRRBz7kn2E9TsbardPyVNFdoNvXq5sLy3NcEfAlACc1+L7Q95+pBuUX44dRg==" + }, + "node_modules/@mdi/font": { + "version": "7.0.96", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-7.0.96.tgz", + "integrity": "sha512-rzlxTfR64hqY8yiBzDjmANfcd8rv+T5C0Yedv/TWk2QyAQYdc66e0kaN1ipmnYU3RukHRTRcBARHzzm+tIhL7w==" } } } diff --git a/package-lock.json b/package-lock.json index e966eef..b3d4077 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,19 @@ "version": "0.1.0", "license": "ISC", "dependencies": { - "@materializecss/materialize": "^1.1.0" + "@materializecss/materialize": "^1.1.0", + "@mdi/font": "^7.0.96" } }, "node_modules/@materializecss/materialize": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@materializecss/materialize/-/materialize-1.1.0.tgz", "integrity": "sha512-W2MrDC8mzpMWyP2OpS0RWTWGcLiRRBz7kn2E9TsbardPyVNFdoNvXq5sLy3NcEfAlACc1+L7Q95+pBuUX44dRg==" + }, + "node_modules/@mdi/font": { + "version": "7.0.96", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-7.0.96.tgz", + "integrity": "sha512-rzlxTfR64hqY8yiBzDjmANfcd8rv+T5C0Yedv/TWk2QyAQYdc66e0kaN1ipmnYU3RukHRTRcBARHzzm+tIhL7w==" } }, "dependencies": { @@ -23,6 +29,11 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@materializecss/materialize/-/materialize-1.1.0.tgz", "integrity": "sha512-W2MrDC8mzpMWyP2OpS0RWTWGcLiRRBz7kn2E9TsbardPyVNFdoNvXq5sLy3NcEfAlACc1+L7Q95+pBuUX44dRg==" + }, + "@mdi/font": { + "version": "7.0.96", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-7.0.96.tgz", + "integrity": "sha512-rzlxTfR64hqY8yiBzDjmANfcd8rv+T5C0Yedv/TWk2QyAQYdc66e0kaN1ipmnYU3RukHRTRcBARHzzm+tIhL7w==" } } } diff --git a/package.json b/package.json index 4e9729c..1cb884c 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "author": "buzz-lightsnack-2007", "license": "ISC", "dependencies": { - "@materializecss/materialize": "^1.1.0" + "@materializecss/materialize": "^1.1.0", + "@mdi/font": "^7.0.96" } } diff --git a/scripts/interface.js b/scripts/interface.js new file mode 100644 index 0000000..6a7f001 --- /dev/null +++ b/scripts/interface.js @@ -0,0 +1,5 @@ +let soundEffects = { + 'ding': new Audio('media/ding.mp4'), + 'fallout': new Audio('media/Shells_falls-Marcel-829263474.mp3'), + 'tada': new Audio('media/tada.mp3') +} diff --git a/scripts/roll.js b/scripts/roll.js new file mode 100644 index 0000000..2acf3b4 --- /dev/null +++ b/scripts/roll.js @@ -0,0 +1,86 @@ +/* https://en.wikipedia.org/wiki/Bo_Bing_(game) */ + +function randomNumber (minimum, maximum, times = 1) { + let resultNumber = 0; + + for (currentRandom = 0; currentRandom < times; currentRandom++) { + resultNumber = Math.floor(Math.random() * (maximum - minimum) + minimum); + }; + return resultNumber; +}; + +function rollDice(times = 1) { + let value_dices = []; + let value_current = 0; + + let dices_amount_current = value_dices.length; + + for (rolls = 0; rolls < times; rolls++) { + for (dices_max = 6; dices_amount_current < dices_max; dices_amount_current = value_dices.length) { + value_current = randomNumber(1, 6); + + if (randomNumber(1, 2) == 1) { + value_dices.push(value_current); + } else { + value_dices.unshift(value_current); + }; + }; + }; + + return value_dices; +}; + +function rollDiceWithResults() { + let value_dices = rollDice(); + let value_current = 0; + let value_dices_numbers = { + 'one': 0, + 'two': 0, + 'three': 0, + 'four': 0, + 'five': 0, + 'six': 0 + }; + + /* The first dice is always the zeroth dice! */ + for (diceNumber = 0; diceNumber < value_dices.length; diceNumber++) { + value_current = value_dices[diceNumber]; + switch (value_current) { + case 1: value_dices_numbers.one++; break; + case 2: value_dices_numbers.two++; break; + case 3: value_dices_numbers.three++; break; + case 4: value_dices_numbers.four++; break; + case 5: value_dices_numbers.five++; break; + case 6: value_dices_numbers.six++; break; + }; + }; + + let result_number = 0; + /* The highest of each place starts as an integer, the rest is an increment by .1. */ + if ((value_dices_numbers.four == value_dices.length) || (value_dices_numbers.one == value_dices.length)) { + /* Six Fours */ + result_number = 1; + if (value_dices_numbers.one > value_dices_numbers.four) { + /* Six Ones */ + result_number = result_number + 0.1; + }; + } else if (value_dices.every( (val, i, arr) => val === arr[0] )) { + /* Six of a Kind */ + result_number = 1.2; + } else if (value_dices_numbers.four == 5) { + /* Five Fours */ + result_number = 1.3; + } else if ((value_dices_numbers.one == 5) || (value_dices_numbers.two == 5) || (value_dices_numbers.three == 5) || (value_dices_numbers.five == 5) || (value_dices_numbers.six == 5)) { + /* Five of a Kind */ + result_number = 1.4; + } else if (value_dices_numbers.four == 4) { + /* Four Fours */ + result_number = 1.5; + } else if (value_dices_numbers.every( (val, i, arr) => val === arr[0] )) { + result_number = 2; + }; + + let results = {'dice': value_dices, + 'result': result_number}; + return results; +}