diff --git a/projects/dice-roller/dice_images/Dice-1.png b/projects/dice-roller/dice_images/Dice-1.png
new file mode 100644
index 0000000..4475581
Binary files /dev/null and b/projects/dice-roller/dice_images/Dice-1.png differ
diff --git a/projects/dice-roller/dice_images/Dice-2.svg.png b/projects/dice-roller/dice_images/Dice-2.svg.png
new file mode 100644
index 0000000..492c41e
Binary files /dev/null and b/projects/dice-roller/dice_images/Dice-2.svg.png differ
diff --git a/projects/dice-roller/dice_images/Dice-3.svg.png b/projects/dice-roller/dice_images/Dice-3.svg.png
new file mode 100644
index 0000000..c64e0c9
Binary files /dev/null and b/projects/dice-roller/dice_images/Dice-3.svg.png differ
diff --git a/projects/dice-roller/dice_images/Dice-4.svg.png b/projects/dice-roller/dice_images/Dice-4.svg.png
new file mode 100644
index 0000000..c566dee
Binary files /dev/null and b/projects/dice-roller/dice_images/Dice-4.svg.png differ
diff --git a/projects/dice-roller/dice_images/Dice-5.svg.png b/projects/dice-roller/dice_images/Dice-5.svg.png
new file mode 100644
index 0000000..2eef430
Binary files /dev/null and b/projects/dice-roller/dice_images/Dice-5.svg.png differ
diff --git a/projects/dice-roller/dice_images/Dice-6.svg.png b/projects/dice-roller/dice_images/Dice-6.svg.png
new file mode 100644
index 0000000..454f81f
Binary files /dev/null and b/projects/dice-roller/dice_images/Dice-6.svg.png differ
diff --git a/projects/dice-roller/index.html b/projects/dice-roller/index.html
new file mode 100644
index 0000000..ddb4f52
--- /dev/null
+++ b/projects/dice-roller/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+ Document
+
+
+
+
Dice Roller
+
# of dice:
+
+
Roll Dice
+
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/dice-roller/script.js b/projects/dice-roller/script.js
new file mode 100644
index 0000000..48591ef
--- /dev/null
+++ b/projects/dice-roller/script.js
@@ -0,0 +1,16 @@
+function rollDice(){
+ const numOfDice = document.getElementById("numOfDice").value;
+ const diceResult = document.getElementById("diceResult");
+ const diceImages = document.getElementById("diceImages");
+ const values = [];
+ const images = [];
+
+ for(let i = 0;i < numOfDice;i++){
+ const value = Math.floor(Math.random()*6)+1;
+ values.push(value);
+ images.push(` `);
+ }
+
+ diceResult.textContent = `dice: ${values.join(', ')}`;
+ diceImages.innerHTML = images.join('');
+ }
diff --git a/projects/dice-roller/styles.css b/projects/dice-roller/styles.css
new file mode 100644
index 0000000..0bdb6db
--- /dev/null
+++ b/projects/dice-roller/styles.css
@@ -0,0 +1,30 @@
+#container{
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ text-align: center;
+ font-size: 2rem;
+ font-weight: bold;
+
+}
+button{
+ font-size: 1.5rem;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ padding: 10px 15px;
+ border-radius: 10px;
+ border: none;
+ color: rgb(37, 37, 37);
+ font-weight:500;
+ cursor: pointer;
+ background: linear-gradient(to left bottom, lightgreen, lightblue);
+}
+button:hover{
+ background:linear-gradient(to left bottom, rgb(104, 246, 104), rgb(139, 223, 250));
+}
+button:active{
+ background:linear-gradient(to left bottom, rgb(158, 235, 158), rgb(179, 224, 240));
+}
+input{
+ font-size: 2rem;
+ width: 150px;
+ text-align: center;
+ font-weight: bold;
+}
\ No newline at end of file
diff --git a/random-password-generator/index.html b/random-password-generator/index.html
new file mode 100644
index 0000000..7f03756
--- /dev/null
+++ b/random-password-generator/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/random-password-generator/script.js b/random-password-generator/script.js
new file mode 100644
index 0000000..09dfef2
--- /dev/null
+++ b/random-password-generator/script.js
@@ -0,0 +1,39 @@
+function generatePassword(length, includeLowercase, includeNumbers, includeSymbols, includeUppercase){
+ const lowercaseChars = "abscdefghijklopqrstuvwxyz";
+ const uppercaseChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ const numberChars = "0123456789"
+ const symbolChars = "@._&";
+ let allowedChars = " ";
+ let password = "";
+ allowedChars += includeLowercase ? lowercaseChars: "";
+ allowedChars += includeUppercase ? uppercaseChars: "";
+ allowedChars += includeNumbers ? numberChars:"";
+ allowedChars += includeSymbols ? symbolChars:"";
+ console.log(allowedChars);
+ if(length <= 0){
+ return `(password length must be at least 1)`;
+ }
+ if(allowedChars.length === 0){
+ return `(At least 1 char needs to be selected)`
+ }
+ for(let i = 0; i
pFad - Phonifier reborn
Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy