From f9a6179b8e81690f88dc936c389cf14093062fe0 Mon Sep 17 00:00:00 2001 From: Carter Pfaff <79235133+MelonMars@users.noreply.github.com> Date: Mon, 15 Jul 2024 20:41:51 -0400 Subject: [PATCH 1/6] Add files via upload --- art/CyberCity-MelonMars/index.js | 148 ++++++++++++++++++ .../snapshots/snapshot1.png | Bin 0 -> 7456 bytes .../snapshots/snapshot2.png | Bin 0 -> 16064 bytes .../snapshots/snapshot3.png | Bin 0 -> 9699 bytes 4 files changed, 148 insertions(+) create mode 100644 art/CyberCity-MelonMars/index.js create mode 100644 art/CyberCity-MelonMars/snapshots/snapshot1.png create mode 100644 art/CyberCity-MelonMars/snapshots/snapshot2.png create mode 100644 art/CyberCity-MelonMars/snapshots/snapshot3.png diff --git a/art/CyberCity-MelonMars/index.js b/art/CyberCity-MelonMars/index.js new file mode 100644 index 000000000..25ade08c4 --- /dev/null +++ b/art/CyberCity-MelonMars/index.js @@ -0,0 +1,148 @@ +/* +Cyberpunk City by github.com/MelonMars +*/ + +const blockWidth = 50; //Width of a block +const blockHeight = 70; //Height of a block +const nBlocks = 5; // Number of blocks on each row and height +const streetSize = 5; //Thickness of the street +const screenHeight = nBlocks * (blockHeight + streetSize); +const screenWidth = nBlocks * (blockWidth + streetSize); +const carHeight = 1; //Height of each car +const carLength = 10; //Length of each car +const nCars = 5 //Number of cars, similar to number of blocks +setDocDimensions(screenWidth, screenHeight); + +function getRandElem(arr) { + const randI = Math.floor(Math.random() * arr.length); + return arr[randI].slice(); +} + +function makeBlock(startPos, bw, bh) { + const blk = new bt.Turtle() + blk.up() + blk.goTo(startPos) + blk.down() + blk.forward(bw) + blk.left(90) + blk.forward(bh) + blk.left(90) + blk.forward(bw) + blk.left(90) + blk.forward(bh) + return (blk.lines()) +} + +function makeCar(startPos, carL, carH) { + const car = new bt.Turtle() + car.up() + car.goTo(startPos) + car.down() + let [x, y] = startPos + return( + [[startPos, [x, y + carH]], + [[x, y + carH],[x + carL, y + carH]], + [[x + carL, y + carH],[x + carL, y]], + [[x + carL, y], startPos]]); +} + +const blocks = [] +for (let blkVert = 0; blkVert < nBlocks; blkVert++) { + for (let blkHor = 0; blkHor < nBlocks; blkHor++) { + blocks.push(makeBlock([blkHor * (blockWidth + streetSize), blkVert * (blockHeight + streetSize)], blockWidth, blockHeight)) + } +} + +function insideBlock(x, y) { + const colI = Math.floor(x / (blockWidth + streetSize)) + const rowI = Math.floor(y / (blockHeight + streetSize)) + const lclX = x % (blockWidth + streetSize) + const lclY = y % (blockHeight + streetSize) + + return (lclX < blockWidth) && (lclY < blockHeight) +} + +function allPtsAllowed(pts, alloPts) { + for (let pt of pts) { + if (!alloPts.some(allowPt => alloPts[0] === pt[0] && alloPts[1] === pt[1])) { + return false; + } + } + return true; +} + +const ptsOutBlk = [] +const ptsInBlk = [] +for (let x = 0; x < screenWidth; x++) { + for (let y = 0; y < screenHeight; y++) { + if (insideBlock(x, y)) { + ptsInBlk.push( + [x, y] + ) + } else { + ptsOutBlk.push( + [x, y] + ) + } + } +} + +const cycleWidth = blockWidth + streetSize +const cycleHeight = blockHeight + streetSize +const blkXs = [] +const blkYs = [] +for (let x = 0; x < screenWidth; x++) { + if (x % cycleWidth < blockWidth) { + blkXs.push(x) + } +} +for (let y = 0; y < screenHeight; y++) { + if (y % cycleHeight < blockHeight) { + blkYs.push(y) + } +} + +const range = streetSize / 2 +const vertCarPts = [] +const horCarPts = [] +for (let pt of ptsOutBlk) { + let [x, y] = pt + console.log("x: ", x) + console.log("y: ", y) + if (blkYs.includes(y)) { + vertCarPts.push([x, y]) + } else { + horCarPts.push([x, y]) + } +} + +const cars = [] +for (let horCar = 0; horCar < nBlocks; horCar++) { + for (let i = 0; i < nCars; i++) { + cars.push(makeCar(getRandElem(horCarPts), carLength, carHeight)) + } +} + +for (let vertCar = 0; vertCar < nBlocks; vertCar++) { + for (let i = 0; i < nCars; i++) { + cars.push(makeCar(getRandElem(vertCarPts), carHeight, carLength)) + } +} + +const blockCols = ["green", "red", "black", "blue", "orange", "navy", "pink", "purple"] + +const border = new bt.Turtle() +border.goTo([0,0]) +border.forward(screenWidth) +border.left(90) +border.forward(screenHeight) +border.left(90) +border.forward(screenWidth) +border.left(90) +border.forward(screenHeight) +drawLines(border.lines(), { "fill": getRandElem(blockCols) }) + +blocks.push(...cars) +for (const block of blocks) { + drawLines(block, { "fill": getRandElem(blockCols) }) +} diff --git a/art/CyberCity-MelonMars/snapshots/snapshot1.png b/art/CyberCity-MelonMars/snapshots/snapshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..3764b78cb6bdfbe3ec2fc0b95c71dc641e0ffc53 GIT binary patch literal 7456 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 literal 0 HcmV?d00001 diff --git a/art/CyberCity-MelonMars/snapshots/snapshot2.png b/art/CyberCity-MelonMars/snapshots/snapshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..616976bc5893871f910edceb8075dcaa7a8fb46e GIT binary patch literal 16064 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 E4=j21cmMzZ literal 0 HcmV?d00001 diff --git a/art/CyberCity-MelonMars/snapshots/snapshot3.png b/art/CyberCity-MelonMars/snapshots/snapshot3.png new file mode 100644 index 0000000000000000000000000000000000000000..34921c15cad647f634362ad0b5eec343895640be GIT binary patch literal 9699 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ƘkdOm@%P`tIzwcA-4CrT29G-IoJ_wX}#?RW!SF3_v zQ6v>))@uwkwffsR-CkX-{9e|P$<(_4!e8+)NE{Hm-|~<4hpM|3PvZ|HvG#{8^s*&5 z%=o~I(9ohz;9CKa|KlwJnOfQEYRDl_MiHTwU=Q;@_~#vCL-dZHu2!cmcKia$`Q;~e zqM)tl;!XE6b`9q>qQdRRlvd2w=>BvnnuN5lDRfX<$B}B>yv^4HDsh#Lxj|9gV9&SY zK{cECu|X+&YVrzk4_w*dK4kJ(dRQpStxVv+Vn#G6X+#dGEOfZ^hoeOk70)~O2NNqo zBaKN>T6oJ6W73ft4r7`Sa&E2s2-2!7xWf8Aw()+d!8k9mguHq$$a6lJI;JR1lAfuP zt0|~|XZ@u{OM0kCiq&-dUR$fL4|4dV78m->ewD`!aAZs9_3c$Pt^B`*w0IaXBkc)% zQ$_|B*jG1te(IBKBIC6(vSmwCDy%;*=fSBSp u(b#O Date: Mon, 15 Jul 2024 20:54:09 -0400 Subject: [PATCH 2/6] Delete art/CyberCity-MelonMars directory --- art/CyberCity-MelonMars/index.js | 148 ------------------ .../snapshots/snapshot1.png | Bin 7456 -> 0 bytes .../snapshots/snapshot2.png | Bin 16064 -> 0 bytes .../snapshots/snapshot3.png | Bin 9699 -> 0 bytes 4 files changed, 148 deletions(-) delete mode 100644 art/CyberCity-MelonMars/index.js delete mode 100644 art/CyberCity-MelonMars/snapshots/snapshot1.png delete mode 100644 art/CyberCity-MelonMars/snapshots/snapshot2.png delete mode 100644 art/CyberCity-MelonMars/snapshots/snapshot3.png diff --git a/art/CyberCity-MelonMars/index.js b/art/CyberCity-MelonMars/index.js deleted file mode 100644 index 25ade08c4..000000000 --- a/art/CyberCity-MelonMars/index.js +++ /dev/null @@ -1,148 +0,0 @@ -/* -Cyberpunk City by github.com/MelonMars -*/ - -const blockWidth = 50; //Width of a block -const blockHeight = 70; //Height of a block -const nBlocks = 5; // Number of blocks on each row and height -const streetSize = 5; //Thickness of the street -const screenHeight = nBlocks * (blockHeight + streetSize); -const screenWidth = nBlocks * (blockWidth + streetSize); -const carHeight = 1; //Height of each car -const carLength = 10; //Length of each car -const nCars = 5 //Number of cars, similar to number of blocks -setDocDimensions(screenWidth, screenHeight); - -function getRandElem(arr) { - const randI = Math.floor(Math.random() * arr.length); - return arr[randI].slice(); -} - -function makeBlock(startPos, bw, bh) { - const blk = new bt.Turtle() - blk.up() - blk.goTo(startPos) - blk.down() - blk.forward(bw) - blk.left(90) - blk.forward(bh) - blk.left(90) - blk.forward(bw) - blk.left(90) - blk.forward(bh) - return (blk.lines()) -} - -function makeCar(startPos, carL, carH) { - const car = new bt.Turtle() - car.up() - car.goTo(startPos) - car.down() - let [x, y] = startPos - return( - [[startPos, [x, y + carH]], - [[x, y + carH],[x + carL, y + carH]], - [[x + carL, y + carH],[x + carL, y]], - [[x + carL, y], startPos]]); -} - -const blocks = [] -for (let blkVert = 0; blkVert < nBlocks; blkVert++) { - for (let blkHor = 0; blkHor < nBlocks; blkHor++) { - blocks.push(makeBlock([blkHor * (blockWidth + streetSize), blkVert * (blockHeight + streetSize)], blockWidth, blockHeight)) - } -} - -function insideBlock(x, y) { - const colI = Math.floor(x / (blockWidth + streetSize)) - const rowI = Math.floor(y / (blockHeight + streetSize)) - const lclX = x % (blockWidth + streetSize) - const lclY = y % (blockHeight + streetSize) - - return (lclX < blockWidth) && (lclY < blockHeight) -} - -function allPtsAllowed(pts, alloPts) { - for (let pt of pts) { - if (!alloPts.some(allowPt => alloPts[0] === pt[0] && alloPts[1] === pt[1])) { - return false; - } - } - return true; -} - -const ptsOutBlk = [] -const ptsInBlk = [] -for (let x = 0; x < screenWidth; x++) { - for (let y = 0; y < screenHeight; y++) { - if (insideBlock(x, y)) { - ptsInBlk.push( - [x, y] - ) - } else { - ptsOutBlk.push( - [x, y] - ) - } - } -} - -const cycleWidth = blockWidth + streetSize -const cycleHeight = blockHeight + streetSize -const blkXs = [] -const blkYs = [] -for (let x = 0; x < screenWidth; x++) { - if (x % cycleWidth < blockWidth) { - blkXs.push(x) - } -} -for (let y = 0; y < screenHeight; y++) { - if (y % cycleHeight < blockHeight) { - blkYs.push(y) - } -} - -const range = streetSize / 2 -const vertCarPts = [] -const horCarPts = [] -for (let pt of ptsOutBlk) { - let [x, y] = pt - console.log("x: ", x) - console.log("y: ", y) - if (blkYs.includes(y)) { - vertCarPts.push([x, y]) - } else { - horCarPts.push([x, y]) - } -} - -const cars = [] -for (let horCar = 0; horCar < nBlocks; horCar++) { - for (let i = 0; i < nCars; i++) { - cars.push(makeCar(getRandElem(horCarPts), carLength, carHeight)) - } -} - -for (let vertCar = 0; vertCar < nBlocks; vertCar++) { - for (let i = 0; i < nCars; i++) { - cars.push(makeCar(getRandElem(vertCarPts), carHeight, carLength)) - } -} - -const blockCols = ["green", "red", "black", "blue", "orange", "navy", "pink", "purple"] - -const border = new bt.Turtle() -border.goTo([0,0]) -border.forward(screenWidth) -border.left(90) -border.forward(screenHeight) -border.left(90) -border.forward(screenWidth) -border.left(90) -border.forward(screenHeight) -drawLines(border.lines(), { "fill": getRandElem(blockCols) }) - -blocks.push(...cars) -for (const block of blocks) { - drawLines(block, { "fill": getRandElem(blockCols) }) -} diff --git a/art/CyberCity-MelonMars/snapshots/snapshot1.png b/art/CyberCity-MelonMars/snapshots/snapshot1.png deleted file mode 100644 index 3764b78cb6bdfbe3ec2fc0b95c71dc641e0ffc53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7456 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 diff --git a/art/CyberCity-MelonMars/snapshots/snapshot2.png b/art/CyberCity-MelonMars/snapshots/snapshot2.png deleted file mode 100644 index 616976bc5893871f910edceb8075dcaa7a8fb46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16064 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 E4=j21cmMzZ diff --git a/art/CyberCity-MelonMars/snapshots/snapshot3.png b/art/CyberCity-MelonMars/snapshots/snapshot3.png deleted file mode 100644 index 34921c15cad647f634362ad0b5eec343895640be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9699 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ƘkdOm@%P`tIzwcA-4CrT29G-IoJ_wX}#?RW!SF3_v zQ6v>))@uwkwffsR-CkX-{9e|P$<(_4!e8+)NE{Hm-|~<4hpM|3PvZ|HvG#{8^s*&5 z%=o~I(9ohz;9CKa|KlwJnOfQEYRDl_MiHTwU=Q;@_~#vCL-dZHu2!cmcKia$`Q;~e zqM)tl;!XE6b`9q>qQdRRlvd2w=>BvnnuN5lDRfX<$B}B>yv^4HDsh#Lxj|9gV9&SY zK{cECu|X+&YVrzk4_w*dK4kJ(dRQpStxVv+Vn#G6X+#dGEOfZ^hoeOk70)~O2NNqo zBaKN>T6oJ6W73ft4r7`Sa&E2s2-2!7xWf8Aw()+d!8k9mguHq$$a6lJI;JR1lAfuP zt0|~|XZ@u{OM0kCiq&-dUR$fL4|4dV78m->ewD`!aAZs9_3c$Pt^B`*w0IaXBkc)% zQ$_|B*jG1te(IBKBIC6(vSmwCDy%;*=fSBSp u(b#O Date: Mon, 15 Jul 2024 21:50:43 -0400 Subject: [PATCH 3/6] Add files via upload --- art/CyberCity-MelonMars/index.js | 150 ++++++++++++++++++ .../snapshots/snapshot1.png | Bin 0 -> 20167 bytes .../snapshots/snapshot2.png | Bin 0 -> 20857 bytes .../snapshots/snapshot3.png | Bin 0 -> 26654 bytes 4 files changed, 150 insertions(+) create mode 100644 art/CyberCity-MelonMars/index.js create mode 100644 art/CyberCity-MelonMars/snapshots/snapshot1.png create mode 100644 art/CyberCity-MelonMars/snapshots/snapshot2.png create mode 100644 art/CyberCity-MelonMars/snapshots/snapshot3.png diff --git a/art/CyberCity-MelonMars/index.js b/art/CyberCity-MelonMars/index.js new file mode 100644 index 000000000..f8654cb9a --- /dev/null +++ b/art/CyberCity-MelonMars/index.js @@ -0,0 +1,150 @@ +/* +@title: CyberCity +@author: MelonMars +@snapshot: snapshot1.png +*/ + +const blockWidth = 50; //Width of a block +const blockHeight = 70; //Height of a block +const nBlocks = 5; // Number of blocks on each row and height +const streetSize = 5; //Thickness of the street +const screenHeight = nBlocks * (blockHeight + streetSize); +const screenWidth = nBlocks * (blockWidth + streetSize); +const carHeight = 1; //Height of each car +const carLength = 10; //Length of each car +const nCars = 5 //Number of cars, similar to number of blocks +setDocDimensions(screenWidth, screenHeight); + +function getRandElem(arr) { + const randI = Math.floor(Math.random() * arr.length); + return arr[randI].slice(); +} + +function makeBlock(startPos, bw, bh) { + const blk = new bt.Turtle() + blk.up() + blk.goTo(startPos) + blk.down() + blk.forward(bw) + blk.left(90) + blk.forward(bh) + blk.left(90) + blk.forward(bw) + blk.left(90) + blk.forward(bh) + return (blk.lines()) +} + +function makeCar(startPos, carL, carH) { + const car = new bt.Turtle() + car.up() + car.goTo(startPos) + car.down() + let [x, y] = startPos + return( + [[startPos, [x, y + carH]], + [[x, y + carH],[x + carL, y + carH]], + [[x + carL, y + carH],[x + carL, y]], + [[x + carL, y], startPos]]); +} + +const blocks = [] +for (let blkVert = 0; blkVert < nBlocks; blkVert++) { + for (let blkHor = 0; blkHor < nBlocks; blkHor++) { + blocks.push(makeBlock([blkHor * (blockWidth + streetSize), blkVert * (blockHeight + streetSize)], blockWidth, blockHeight)) + } +} + +function insideBlock(x, y) { + const colI = Math.floor(x / (blockWidth + streetSize)) + const rowI = Math.floor(y / (blockHeight + streetSize)) + const lclX = x % (blockWidth + streetSize) + const lclY = y % (blockHeight + streetSize) + + return (lclX < blockWidth) && (lclY < blockHeight) +} + +function allPtsAllowed(pts, alloPts) { + for (let pt of pts) { + if (!alloPts.some(allowPt => alloPts[0] === pt[0] && alloPts[1] === pt[1])) { + return false; + } + } + return true; +} + +const ptsOutBlk = [] +const ptsInBlk = [] +for (let x = 0; x < screenWidth; x++) { + for (let y = 0; y < screenHeight; y++) { + if (insideBlock(x, y)) { + ptsInBlk.push( + [x, y] + ) + } else { + ptsOutBlk.push( + [x, y] + ) + } + } +} + +const cycleWidth = blockWidth + streetSize +const cycleHeight = blockHeight + streetSize +const blkXs = [] +const blkYs = [] +for (let x = 0; x < screenWidth; x++) { + if (x % cycleWidth < blockWidth) { + blkXs.push(x) + } +} +for (let y = 0; y < screenHeight; y++) { + if (y % cycleHeight < blockHeight) { + blkYs.push(y) + } +} + +const range = streetSize / 2 +const vertCarPts = [] +const horCarPts = [] +for (let pt of ptsOutBlk) { + let [x, y] = pt + console.log("x: ", x) + console.log("y: ", y) + if (blkYs.includes(y)) { + vertCarPts.push([x, y]) + } else { + horCarPts.push([x, y]) + } +} + +const cars = [] +for (let horCar = 0; horCar < nBlocks; horCar++) { + for (let i = 0; i < nCars; i++) { + cars.push(makeCar(getRandElem(horCarPts), carLength, carHeight)) + } +} + +for (let vertCar = 0; vertCar < nBlocks; vertCar++) { + for (let i = 0; i < nCars; i++) { + cars.push(makeCar(getRandElem(vertCarPts), carHeight, carLength)) + } +} + +const blockCols = ["green", "red", "black", "blue", "orange", "navy", "pink", "purple"] + +const border = new bt.Turtle() +border.goTo([0,0]) +border.forward(screenWidth) +border.left(90) +border.forward(screenHeight) +border.left(90) +border.forward(screenWidth) +border.left(90) +border.forward(screenHeight) +drawLines(border.lines(), { "fill": getRandElem(blockCols) }) + +blocks.push(...cars) +for (const block of blocks) { + drawLines(block, { "fill": getRandElem(blockCols) }) +} diff --git a/art/CyberCity-MelonMars/snapshots/snapshot1.png b/art/CyberCity-MelonMars/snapshots/snapshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..550e3bf826415364cf8086ceb67efb23354dca14 GIT binary patch literal 20167 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 literal 0 HcmV?d00001 diff --git a/art/CyberCity-MelonMars/snapshots/snapshot3.png b/art/CyberCity-MelonMars/snapshots/snapshot3.png new file mode 100644 index 0000000000000000000000000000000000000000..eab38606da73a06579ee6128f799c865e22c0472 GIT binary patch literal 26654 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 literal 0 HcmV?d00001 From 3002e6c335637e26def1993244e2c562fd701390 Mon Sep 17 00:00:00 2001 From: Carter Pfaff <79235133+MelonMars@users.noreply.github.com> Date: Sun, 21 Jul 2024 16:46:42 -0400 Subject: [PATCH 4/6] Update index.js --- art/CyberCity-MelonMars/index.js | 165 ++++++++++++++++++++++++++++--- 1 file changed, 150 insertions(+), 15 deletions(-) diff --git a/art/CyberCity-MelonMars/index.js b/art/CyberCity-MelonMars/index.js index f8654cb9a..c010f58cc 100644 --- a/art/CyberCity-MelonMars/index.js +++ b/art/CyberCity-MelonMars/index.js @@ -7,12 +7,24 @@ const blockWidth = 50; //Width of a block const blockHeight = 70; //Height of a block const nBlocks = 5; // Number of blocks on each row and height -const streetSize = 5; //Thickness of the street +const streetSize = 20; //Thickness of the street const screenHeight = nBlocks * (blockHeight + streetSize); const screenWidth = nBlocks * (blockWidth + streetSize); const carHeight = 1; //Height of each car const carLength = 10; //Length of each car -const nCars = 5 //Number of cars, similar to number of blocks +const nCars = 0 //Number of cars, similar to number of blocks +const stripeFac = 10; //Stripe factor for crosswalks +const extraGap = 0; //Extra gap between stripes of crosswalk +const crossWalkSize = 5; //Length of crosswalk +const laneDashes = 20; //Amount of dashes per lane +const laneSpacing = 5; //Amount of space between dashes +const nLanes = 3; //Amount of lanes +const skyScraperChance = 0.3 +const skyScraperJumps = 5 // How many tiers you want in your tiered skyscraper +const skyScraperReductionFactor = 0.4; +const colorCars = false +const colorBuildings = false +const colorBackground = false setDocDimensions(screenWidth, screenHeight); function getRandElem(arr) { @@ -32,6 +44,7 @@ function makeBlock(startPos, bw, bh) { blk.forward(bw) blk.left(90) blk.forward(bh) + return (blk.lines()) } @@ -40,21 +53,117 @@ function makeCar(startPos, carL, carH) { car.up() car.goTo(startPos) car.down() - let [x, y] = startPos - return( - [[startPos, [x, y + carH]], - [[x, y + carH],[x + carL, y + carH]], - [[x + carL, y + carH],[x + carL, y]], - [[x + carL, y], startPos]]); + car.forward(carL) + car.left(90) + car.forward(carH) + car.left(90) + car.forward(carL) + car.left(90) + car.forward(carH) + return (car.lines()) + } +function drawLanes(bw, bh, streetSize, i, spaceI) { + if (spaceI != nLanes) { + console.log(spaceI, nLanes); + const lw = new bt.Turtle(); + const spacing = streetSize / nLanes; + lw.up(); + i+=1; + lw.goTo([(bw*i)+(i*streetSize)-(spaceI*spacing), 0]); + lw.left(90); + lw.down(); + for (let i=0; i Date: Sun, 21 Jul 2024 16:48:10 -0400 Subject: [PATCH 5/6] Update index.js --- art/CyberCity-MelonMars/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/art/CyberCity-MelonMars/index.js b/art/CyberCity-MelonMars/index.js index c010f58cc..95f1184e6 100644 --- a/art/CyberCity-MelonMars/index.js +++ b/art/CyberCity-MelonMars/index.js @@ -24,7 +24,7 @@ const skyScraperJumps = 5 // How many tiers you want in your tiered skyscraper const skyScraperReductionFactor = 0.4; const colorCars = false const colorBuildings = false -const colorBackground = false +const colorBackground = true setDocDimensions(screenWidth, screenHeight); function getRandElem(arr) { @@ -238,7 +238,7 @@ for (let vertCar = 0; vertCar < nBlocks; vertCar++) { } } -const blockCols = ["green", "red", "black", "blue", "orange", "navy", "pink", "purple"] +const Cols = ["green", "red", "black", "blue", "orange", "navy", "pink", "purple"] const border = new bt.Turtle() border.goTo([0,0]) From e2db1628ef7b025bbec9dbf6f3f8806814d19f63 Mon Sep 17 00:00:00 2001 From: Carter Pfaff <79235133+MelonMars@users.noreply.github.com> Date: Sun, 21 Jul 2024 17:15:57 -0400 Subject: [PATCH 6/6] Update index.js --- art/CyberCity-MelonMars/index.js | 53 ++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/art/CyberCity-MelonMars/index.js b/art/CyberCity-MelonMars/index.js index 95f1184e6..87e6cb226 100644 --- a/art/CyberCity-MelonMars/index.js +++ b/art/CyberCity-MelonMars/index.js @@ -25,10 +25,15 @@ const skyScraperReductionFactor = 0.4; const colorCars = false const colorBuildings = false const colorBackground = true +const sidewalkWidth = 5; //Also increases the width of the skyscrapers +const stuff = 2; //Amount of random stuff to put on each block +const lChance = 0.5; //Chance that the random thing on the block will be an L shaped polygon or not +const maxStuffLength = 10; //Max stuff length (MUST BE LESS THAN THE SIZE OF THE BLOCK) +const minStuffLength = 5; //Minimum stuff length (>0) setDocDimensions(screenWidth, screenHeight); function getRandElem(arr) { - const randI = Math.floor(Math.random() * arr.length); + const randI = Math.floor(bt.randInRange(0,1) * arr.length); return arr[randI].slice(); } @@ -132,6 +137,7 @@ function drawCrosswalks(startPos, bw, bh, streetSize) { const crosswalks = [] const blocks = [] const lanes = [] +const polys = [] for (let blkVert = 0; blkVert < nBlocks; blkVert++) { for (let blkHor = 0; blkHor < nBlocks; blkHor++) { let startPos = [blkHor * (blockWidth + streetSize), blkVert * (blockHeight + streetSize)] @@ -154,6 +160,43 @@ for (let blkVert = 0; blkVert < nBlocks; blkVert++) { } } else { blocks.push(makeBlock([blkHor * (blockWidth + streetSize), blkVert * (blockHeight + streetSize)], blockWidth, blockHeight)); + for (let i=0;i