Add Dice Library
This commit is contained in:
parent
cd8e7c518b
commit
94e441969a
4 changed files with 123 additions and 0 deletions
15
structure-and-scale/dice-library/index.html
Normal file
15
structure-and-scale/dice-library/index.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="dark">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css">
|
||||||
|
<title>Dice Library</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Dice Library</h1>
|
||||||
|
<p>All of the magic here happens in the console.</p>
|
||||||
|
|
||||||
|
<script src="script.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
66
structure-and-scale/dice-library/script.js
Normal file
66
structure-and-scale/dice-library/script.js
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
let roll = (function () {
|
||||||
|
/**
|
||||||
|
* Randomly shuffle an array
|
||||||
|
* https://stackoverflow.com/a/2450976/1293256
|
||||||
|
* @param {Array} array The array to shuffle
|
||||||
|
* @return {Array} The shuffled array
|
||||||
|
*/
|
||||||
|
function shuffle (array) {
|
||||||
|
|
||||||
|
let currentIndex = array.length;
|
||||||
|
let temporaryValue, randomIndex;
|
||||||
|
|
||||||
|
// While there remain elements to shuffle...
|
||||||
|
while (0 !== currentIndex) {
|
||||||
|
// Pick a remaining element...
|
||||||
|
randomIndex = Math.floor(Math.random() * currentIndex);
|
||||||
|
currentIndex -= 1;
|
||||||
|
|
||||||
|
// And swap it with the current element.
|
||||||
|
temporaryValue = array[currentIndex];
|
||||||
|
array[currentIndex] = array[randomIndex];
|
||||||
|
array[randomIndex] = temporaryValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return array;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function createDice ( numSides ) {
|
||||||
|
let array = [];
|
||||||
|
for (let n = 0; n < numSides; n++) {
|
||||||
|
array.push(n+1);
|
||||||
|
}
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
|
function d2() {
|
||||||
|
return shuffle(createDice(2))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function d4() {
|
||||||
|
return shuffle(createDice(4))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function d6() {
|
||||||
|
return shuffle(createDice(6))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function d8() {
|
||||||
|
return shuffle(createDice(8))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function d10() {
|
||||||
|
return shuffle(createDice(10))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function d12() {
|
||||||
|
return shuffle(createDice(12))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function d20() {
|
||||||
|
return shuffle(createDice(20))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return {d2, d4, d6, d8, d10, d12, d20};
|
||||||
|
})();
|
20
structure-and-scale/main.go
Normal file
20
structure-and-scale/main.go
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
mux := http.NewServeMux()
|
||||||
|
|
||||||
|
mux.Handle("GET /dice-library/", http.StripPrefix("/dice-library", http.FileServer(http.Dir("dice-library"))))
|
||||||
|
|
||||||
|
log.Println("Start the web server...")
|
||||||
|
err := http.ListenAndServe(":8080", mux)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
22
structure-and-scale/watch.bash
Executable file
22
structure-and-scale/watch.bash
Executable file
|
@ -0,0 +1,22 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
run_go() {
|
||||||
|
pkill -f "go run" || true
|
||||||
|
cd "$1" && go run . &
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
go run . &
|
||||||
|
|
||||||
|
while read -r filename; do
|
||||||
|
case "$filename" in
|
||||||
|
*.go)
|
||||||
|
echo "File .go modificato: $filename"
|
||||||
|
run_go "$directory"
|
||||||
|
;;
|
||||||
|
*.html|*.css|*.js)
|
||||||
|
echo "File HTML/CSS/JS modificato: $filename"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done < <(inotifywait -r -m -e modify --format '%w%f' ./)
|
||||||
|
|
Loading…
Reference in a new issue