Skip to content

Instantly share code, notes, and snippets.

@Glidias
Last active June 11, 2023 09:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Glidias/4964488d24157b9046f8a3c5d301dde7 to your computer and use it in GitHub Desktop.
Save Glidias/4964488d24157b9046f8a3c5d301dde7 to your computer and use it in GitHub Desktop.
Github copilot generated examples and commented fixes i had to make
// (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(","))
@Glidias
Copy link
Author

Glidias commented Jun 11, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment