Last active
June 11, 2023 09:40
-
-
Save Glidias/4964488d24157b9046f8a3c5d301dde7 to your computer and use it in GitHub Desktop.
Github copilot generated examples and commented fixes i had to make
This file contains hidden or 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
// (example prompt, hardcoded array value generarted by AI successfully given starting array values of "[0, 1, 5..." | |
const quadTreeArrayLevelOffsets: Array<number> = [0, 1, 5, 21, 85, 341, 1365, 5461, 21845, 87381, 349525, 1398101, 5592405, 22369621, 89478485, 357913941, 1431655765, 5726623061, 22906492245, 91625968981, 366503875925, 1466015503701, 5864062014805, 23456248059221, 93824992236885, 375299968947541, 1501199875790165, 6004799503160661, 24019198012642645, 96076792050570581, 384307168202282325, 1537228672809129301, 6148914691236517205, 24595658764946068821, 98382635059784275285, 393530540239137101141, 1574122160956548404565, 6296488643826193618261, 25185954575304774473045, 100743818301219097892181, 402975273204876391568725, 1611901092819505566274901, 6447604371278022265099605, 25790417485112089060398421, 103161669940448356241593685, 412646679761793424966374741, 1650586719047173699865498965, 6602346876188694799461995861, 26409387504754779197847983445, 105637550019019116791391933781, 422550200076076467165567735125, 1690200800304305868662270940501, 6760803201217223474649083762005, 27043212804868893898596335048021, 108172851219475575594385340192085, 432691404877902302377541360768341, 1730765619511609209500165443073365, 6923062478046436838000661772293461, 27692249912185747352002647089173885, 110768999648742989408010588356695541, 443075998]; | |
// generate quad tree array offsets for levels x = 0 to 64 | |
function generateQuadTreeArrayLevelOffsets(x: number) { | |
let quadTreeArrayLevelOffsets = [] | |
let offset = 0; | |
for (let i = 0; i < x; i++) { | |
offset += Math.pow(4, i); // AI: failed, should run offset pushing initial in order to start with a zero offset value initially, (index 0 === level 0 => level 0 root of level quadtree) | |
quadTreeArrayLevelOffsets.push(offset); | |
offset += Math.pow(4, i); // User: by user | |
} | |
return quadTreeArrayLevelOffsets; | |
} | |
// get quad tree array offsets for levels x = 0 to 64 | |
function getQuadTreeArrayLevelOffsets(numLevels: number): Array<number> { | |
let arr: Array<number> = [0]; | |
let curLevel: number = 0; | |
let curOffset: number = 0; | |
let curNumNodes: number = 1; | |
numLevels--; // User: had to add this due to array dummy value pre-allocation | |
while (curLevel < numLevels) { | |
curOffset += curNumNodes; | |
curNumNodes *= 4; | |
arr.push(curOffset); | |
curLevel++; | |
} | |
return arr; | |
} | |
const testNumLevels = 32; | |
console.log(generateQuadTreeArrayLevelOffsets(testNumLevels).join(","); | |
console.log(quadTreeArrayLevelOffsets.slice(0, testNumLevels).join(","))) | |
// must return all true | |
alert(generateQuadTreeArrayLevelOffsets(testNumLevels).join(",") === quadTreeArrayLevelOffsets.slice(0, testNumLevels).join(",")) | |
alert(getQuadTreeArrayLevelOffsets(testNumLevels).join(",") === quadTreeArrayLevelOffsets.slice(0, testNumLevels).join(",")) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://jsfiddle.net/Glidias/96nLfovc/1/