Skip to content

Instantly share code, notes, and snippets.

@dsetzer
Last active August 18, 2019 04:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dsetzer/0aa010653fa597ee3e4b29cf3d3f610e to your computer and use it in GitHub Desktop.
Save dsetzer/0aa010653fa597ee3e4b29cf3d3f610e to your computer and use it in GitHub Desktop.
bustadice seed generator
// V1 Original
/*const generateClientSeed = () => {
let text = "";
const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (let i = 0; i < 16; i++) text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}*/
// V2
const generateClientSeed = (wordNum = 3, wordLen = 12, noNumeric, noRepeat, noReuse, a, b) => {
noNumeric = noNumeric || false, noRepeat = noRepeat || false, noReuse = noReuse || false;
let n = (!noNumeric ? "0123456789" : ""), text = "", last = "", word = "", l = "";
a = a || `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz${n}`;
b = b || `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz${n}`;
for (let w = 0; w < wordNum; w++){
word = "";
for (let i = 0; i < wordLen; i++){
do {
last = l.toLowerCase();
const set = i < wordLen / 2 ? a : b
l = set.charAt(Math.floor(Math.random() * set.length))
} while((noRepeat && l == last) || (noReuse && word.includes(l)));
word += l;
}
text += word + " ";
}
return text.trim();
}
/*
console.log(generateClientSeed(undefined,undefined,true));
//rqAwlWgirxsu INLLyIgAnory FcZHSLLsBKdK
console.log(generateClientSeed());
//LS5eLgQdn2R4 r8jM2xgBYR0w 90lDlIXIlXny
console.log(generateClientSeed(10, 2));
//3f yr 0c 2V B8 zQ Bi aC VZ wh
console.log(generateClientSeed(10, 2, true, false, false, '0123456789', 'ABCDEF'));
//1C 8B 0F 6A 7A 1E 7C 8B 4A 3A
console.log(generateClientSeed(5, 5, true, true, false, 'BEEF-A-RONI', 'MI-AMORE'));
//FN-RE BEBOM -IEEO NEF-M -EFAM
console.log(generateClientSeed(1, 32));
//X2j2e3B5RtS7rYuTSijqLhqCDNoTHZvR
console.log(generateClientSeed(1, 32, false));
//rsGPxrIBxLGxC7QBGQsoRijbbvly3Ie1
console.log(generateClientSeed(1, 32));
//0BH0AN6AV4GpgAc82GoR9ZJi2wzq39bU
console.log(generateClientSeed(1, 32, true, true, false, '1234567890', '1234567890'));
//52019656086737680706024247273526
console.log(generateClientSeed(4, 6, true, true, false, '1234567890', '1234567890'));
//782403 284959 534284 962949
console.log(generateClientSeed(12, 2, false, false, false, '10', '10'));
//00 10 00 10 01 00 01 00 01 01 00 01
console.log(generateClientSeed(6, 4, false, false, false, '10', '10'));
//0101 1000 1111 1010 0010 0100
console.log(generateClientSeed(12, 2, false, false, false, '-_.', '-_.'));
//._ -_ .- _. .- -. -_ .. .. _- _- ._
console.log(generateClientSeed(12, 2, false, false, false, '.:', '.:'));
//:: :: .. :: .. :. .: :. :. .: :: .:
console.log(generateClientSeed(1, 64, true, false, false, '0123456789', 'ABCDEF'));
//4166287124127910CEEBFEDFBBFEABCF
console.log(generateClientSeed(4, 6, true, true, false, '0123456789', 'abcdef'));
//727bae 031aef 914bcb 361efa
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment