Created
April 7, 2018 10:51
-
-
Save shuuki/fa0f9956afe895ae0d6efa443af8d7fb to your computer and use it in GitHub Desktop.
make small universes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title></title> | |
<style> | |
body { | |
background: #f8f8f8; | |
color: #0a0a0a; | |
} | |
</style> | |
</head> | |
<body> | |
<script> | |
var game = { | |
overworld: {} | |
} | |
function selfseed(list, limit) { | |
let seeded = [] | |
while (limit > 0) { | |
let roll = Math.floor(Math.random() * list.length); | |
seeded.push(list[roll]); | |
limit -= 1; | |
} | |
return seeded.join(''); | |
} | |
//lets = ('111111122223334').split('') | |
//selfseed(lets,280) | |
// advanced weighted rolling | |
// takes array of numbers | |
function decider( values ) { | |
let result = 0 | |
let max = 0 | |
let roll = 0 | |
let step = 0 | |
let slice = [] | |
for ( let i = 0; i < values.length; i++ ) { | |
//add values together | |
max += values[i] | |
//build array of steps for rolls | |
for ( let k = 0; k < values[i]; k++ ) { | |
step += 1 | |
slice[step] = i | |
} | |
} | |
//make a roll bounded by total of values | |
roll = Math.ceil( Math.random() * max ) | |
//return value of slice index at roll | |
result = slice[roll] | |
//console.log( 'max ' + max ) | |
//console.log( 'roll ' + roll ) | |
//console.log( '#' + slice[roll] + ' = ' + values[slice[roll]] ) | |
return result | |
} | |
//console.log(decider([12,44,12])) | |
//console.log(decider([120,16,61,87,17,1,4])) | |
// assumes {keys: [], weights: []} format | |
function decideseed( seed, limit ) { | |
let seeded = [] | |
while ( limit > 0 ) { | |
let index = seed.keys[decider( seed.weights )] | |
seeded.push( index ); | |
limit -= 1; | |
} | |
//return seeded.join('') | |
return seeded; | |
} | |
//decideseed({keys: ['o','x'], weights: [2,2]}, 140) | |
//decideseed({keys: ['o','x','y',' '], weights: [2,8,40,140]}, 200) | |
//decideseed({keys: ['o','x','y',' '], weights: [4,4,4,80]}, 200).join('') | |
//🌲🌳🌱🍃🌷 | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment