User prompt
arkaplan anımasyonu olmamış
User prompt
arkaplan da patlayan havayı fişek animasyonu olsun partiküller çıksın her yerden
User prompt
hayvanların komple bütün bedenini çiz
User prompt
hayvanların şeklini tekrardan kodla yazılan hayvanın şekliyle birebir olsun
User prompt
şekiller sadece ekranın ortasında çıksın
User prompt
beyaz asseti kullanma sil onu
User prompt
assetler daha belirgin olsun ve hangi hayvan olduğu ekrana bakılınca anlaşılsın
User prompt
Dog, Cat, Horse, Elephant, Lion, Tiger, Bear, Whale, Dolphin, Monkey, Bat, Deer, Wolf, Fox, Rabbit, Kangaroo, Human.Eagle, Owl, Sparrow, Penguin, Ostrich, Parrot, Pigeon, Hummingbird, Duck, Swan, Crow, Robin, Albatross, Flamingo.Snake, Lizard, Crocodile, Alligator, Turtle, Tortoise, Chameleon, Gecko, Komodo Dragon, Cobra, Python.Frog, Toad, Salamander, Newt, Caecilian, Axolotl.Shark, Salmon, Tuna, Clownfish, Goldfish, Eel, Seahorse, Trout, Cod, Barracuda, Stingray, Manta Ray.Ant, Bee, Butterfly, Moth, Beetle, Fly, Mosquito, Grasshopper, Dragonfly, Ladybug, Cockroach.Spider, Scorpion, Tick, Mite, Tarantula, Black Widow.Crab, Lobster, Shrimp, Prawn, Crayfish, Barnacle, Krill.Snail, Slug, Octopus, Squid, Clam, Oyster, Mussel, Scallop, Nautilus.Earthworm, Leech, Tapeworm, Roundworm. Starfish (Sea Star), Sea Urchin, Sea Cucumber, Sand Dollar.Jellyfish, Coral, Sea Anemone, Hydra.Bath Sponge, Sea Sponge. lütfen bu hayvanlarıda ekle
User prompt
çıkan hayvanın ne olduğu üstte yazmalı ingilizce
User prompt
daha büyük şekiller
User prompt
ekrana çıklayınca assetler rastgele hayvan şekilleri oluştursun
User prompt
toplu bir şekilde çıkacak hale getir
User prompt
şimdi bu eklediğin assetleri ben ekrana tıklayınca rastgele çıkacak hale getir
User prompt
assets bölümüne her rengin bir assetini ekle
User prompt
renkler kodda görünüyor ama ekranda görünmüyor
User prompt
renkleri asset olarak ekle
User prompt
aynı siyah çıkıyor desenler ve şekiller
User prompt
Beyaz, sarı, turuncu, kırmızı, mor, mavi, yeşil, kahverengi, gri, siyah, pembe, bej, turkuaz, lacivert, bordo, altın, gümüş, bronz, mercan, zeytin yeşili, füme, lila, eflatun, krem, ten rengi, haki, camgöbeği, magenta, çivit mavisi, vişne çürüğü, kobalt mavisi, nane yeşili, lavanta lütfen bu renkleri de ekler misin
User prompt
lütfen bütün renkleri ekle
User prompt
sadece siyah renkte çıkıyor
User prompt
sadece siyah renk çıkıyor bütün renkleri ekle
User prompt
rastgele çıkan isimler şekiller le çıksın yazı olarak değil
User prompt
an başta bana tıkla yazan renkli yazılar olsun
User prompt
rastgele desenler birleşerek bir isim yazssın ingilizce rastgele isimler ve canlı renk tonları kullan
User prompt
çok büyük ekranda büsbüyük şekil olsun
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Pattern class: a container for a randomly generated pattern at a given position. var Pattern = Container.expand(function () { var self = Container.call(this); // Generate a random pattern on creation // Patterns: single shape, cluster, or overlay function randomColor() { // Expanded palette: all visually distinct, vibrant, and basic colors var colors = [0xff5e5b, // red 0xffc857, // yellow 0x4ecdc4, // turquoise 0x556270, // blue gray 0x3a86ff, // blue 0xffbe0b, // gold 0xfb5607, // orange 0x8338ec, // purple 0xff006e, // magenta 0x06d6a0, // green 0xffffff, // white 0x000000, // black 0x00ff00, // lime 0x00ffff, // cyan 0x0000ff, // pure blue 0xff00ff, // fuchsia 0xffff00, // pure yellow 0xff0000, // pure red 0x800000, // maroon 0x008000, // dark green 0x808000, // olive 0x800080, // dark purple 0x008080, // teal 0x808080, // gray 0xc0c0c0, // silver 0x7fffd4, // aquamarine 0xffa500, // orange 0x40e0d0, // turquoise 0x4682b4, // steel blue 0xdc143c, // crimson 0x20b2aa, // light sea green 0xf08080, // light coral 0xadd8e6, // light blue 0xe0ffff, // light cyan 0x90ee90, // light green 0xffb6c1, // light pink 0xff69b4, // hot pink 0xcd5c5c, // indian red 0x8a2be2, // blue violet 0xdeb887, // burlywood 0x00fa9a, // medium spring green 0x1e90ff, // dodger blue 0x7cfc00, // lawn green 0xff1493, // deep pink 0x00bfff, // deep sky blue 0x9932cc, // dark orchid 0x8b0000, // dark red 0x2e8b57, // sea green 0xff6347, // tomato 0x4682b4, // steel blue 0x9acd32, // yellow green 0x6495ed, // cornflower blue 0xffdab9, // peach puff 0xdda0dd, // plum 0xb0e0e6, // powder blue 0xf5deb3, // wheat 0xf0e68c, // khaki 0xe9967a, // dark salmon 0x48d1cc, // medium turquoise 0x00ced1, // dark turquoise 0x9400d3, // dark violet 0x00ff7f, // spring green 0x7b68ee, // medium slate blue 0x6a5acd, // slate blue 0x5f9ea0, // cadet blue 0x191970, // midnight blue 0x8b008b, // dark magenta 0x556b2f, // dark olive green 0x228b22, // forest green 0xd2691e, // chocolate 0xb22222, // firebrick 0x808080, // gray 0x00008b, // dark blue 0x008b8b, // dark cyan 0xb8860b, // dark goldenrod 0xa9a9a9, // dark gray 0x006400, // dark green 0xbdb76b, // dark khaki 0x8b008b, // dark magenta 0x556b2f, // dark olive green 0xff8c00, // dark orange 0x9932cc, // dark orchid 0x8b0000, // dark red 0xe9967a, // dark salmon 0x8fbc8f, // dark sea green 0x483d8b, // dark slate blue 0x2f4f4f, // dark slate gray 0x00ced1, // dark turquoise 0x9400d3, // dark violet 0xff1493, // deep pink 0x00bfff, // deep sky blue 0x696969, // dim gray 0x1e90ff, // dodger blue 0xb22222, // firebrick 0xfffaf0, // floral white 0x228b22, // forest green 0xff00ff, // fuchsia 0xdcdcdc, // gainsboro 0xf8f8ff, // ghost white 0xffd700, // gold 0xdaa520, // goldenrod 0x808080, // gray 0x008000, // green 0xadff2f, // green yellow 0xf0fff0, // honeydew 0xff69b4, // hot pink 0xcd5c5c, // indian red 0x4b0082, // indigo 0xfffff0, // ivory 0xf0e68c, // khaki 0xe6e6fa, // lavender 0xfff0f5, // lavender blush 0x7cfc00, // lawn green 0xfffacd, // lemon chiffon 0xadd8e6, // light blue 0xf08080, // light coral 0xe0ffff, // light cyan 0xfafad2, // light goldenrod yellow 0xd3d3d3, // light gray 0x90ee90, // light green 0xffb6c1, // light pink 0xffa07a, // light salmon 0x20b2aa, // light sea green 0x87cefa, // light sky blue 0x778899, // light slate gray 0xb0c4de, // light steel blue 0xffffe0, // light yellow 0x00ff00, // lime 0x32cd32, // lime green 0xfaf0e6, // linen 0xff00ff, // magenta 0x800000, // maroon 0x66cdaa, // medium aquamarine 0x0000cd, // medium blue 0xba55d3, // medium orchid 0x9370db, // medium purple 0x3cb371, // medium sea green 0x7b68ee, // medium slate blue 0x00fa9a, // medium spring green 0x48d1cc, // medium turquoise 0xc71585, // medium violet red 0x191970, // midnight blue 0xf5fffa, // mint cream 0xffe4e1, // misty rose 0xffe4b5, // moccasin 0xffdead, // navajo white 0x000080, // navy 0xfdf5e6, // old lace 0x808000, // olive 0x6b8e23, // olive drab 0xffa500, // orange 0xff4500, // orange red 0xda70d6, // orchid 0xeee8aa, // pale goldenrod 0x98fb98, // pale green 0xafeeee, // pale turquoise 0xdb7093, // pale violet red 0xffefd5, // papaya whip 0xffdab9, // peach puff 0xcd853f, // peru 0xffc0cb, // pink 0xdda0dd, // plum 0xb0e0e6, // powder blue 0x800080, // purple 0xff0000, // red 0xbc8f8f, // rosy brown 0x4169e1, // royal blue 0x8b4513, // saddle brown 0xfa8072, // salmon 0xf4a460, // sandy brown 0x2e8b57, // sea green 0xfff5ee, // seashell 0xa0522d, // sienna 0xc0c0c0, // silver 0x87ceeb, // sky blue 0x6a5acd, // slate blue 0x708090, // slate gray 0xfffafa, // snow 0x00ff7f, // spring green 0x4682b4, // steel blue 0xd2b48c, // tan 0x008080, // teal 0xd8bfd8, // thistle 0xff6347, // tomato 0x40e0d0, // turquoise 0xee82ee, // violet 0xf5deb3, // wheat 0xffffff, // white 0xf5f5f5, // white smoke 0xffff00, // yellow 0x9acd32 // yellow green ]; if (Math.random() < 0.3) { // Simulate a gradient by returning an array of two colors var c1 = colors[Math.floor(Math.random() * colors.length)]; var c2 = colors[Math.floor(Math.random() * colors.length)]; return [c1, c2]; } return colors[Math.floor(Math.random() * colors.length)]; } function randomShape() { // Return 'box' or 'ellipse' return Math.random() < 0.5 ? 'box' : 'ellipse'; } function randomSize() { // Return a size between 120 and 400 px return 120 + Math.floor(Math.random() * 280); } function randomRotation() { // Return a random rotation in radians return Math.random() * Math.PI * 2; } function randomAlpha() { // Return a random alpha between 0.7 and 1 return 0.7 + Math.random() * 0.3; } function randomPatternType() { // 0: single, 1: cluster, 2: overlay var r = Math.random(); if (r < 0.5) return 0; if (r < 0.8) return 1; return 2; } // Generate the pattern function generatePattern() { var type = randomPatternType(); if (type === 0) { // Single shape var w = randomSize(); var h = randomSize(); var shape = randomShape(); var color = randomColor(); if (Array.isArray(color)) { // Simulate a gradient by overlaying two shapes with different colors and alpha var asset1 = self.attachAsset({ shape: shape, width: w, height: h, color: color[0], anchorX: 0.5, anchorY: 0.5 }, {}); asset1.rotation = randomRotation(); asset1.alpha = randomAlpha(); var asset2 = self.attachAsset({ shape: shape, width: w, height: h, color: color[1], anchorX: 0.5, anchorY: 0.5 }, {}); asset2.rotation = randomRotation(); asset2.alpha = 0.5 + Math.random() * 0.3; } else { var asset = self.attachAsset({ shape: shape, width: w, height: h, color: color, anchorX: 0.5, anchorY: 0.5 }, {}); asset.rotation = randomRotation(); asset.alpha = randomAlpha(); } } else if (type === 1) { // Cluster: 3-6 shapes in a circle var count = 3 + Math.floor(Math.random() * 4); var radius = 80 + Math.random() * 120; for (var i = 0; i < count; i++) { var angle = Math.PI * 2 / count * i + Math.random() * 0.3; var w = randomSize() * (0.5 + Math.random() * 0.7); var h = randomSize() * (0.5 + Math.random() * 0.7); var shape = randomShape(); var color = randomColor(); if (Array.isArray(color)) { // Simulate a gradient by overlaying two shapes var asset1 = self.attachAsset({ shape: shape, width: w, height: h, color: color[0], anchorX: 0.5, anchorY: 0.5 }, {}); asset1.x = Math.cos(angle) * radius; asset1.y = Math.sin(angle) * radius; asset1.rotation = randomRotation(); asset1.alpha = randomAlpha(); var asset2 = self.attachAsset({ shape: shape, width: w, height: h, color: color[1], anchorX: 0.5, anchorY: 0.5 }, {}); asset2.x = Math.cos(angle) * radius; asset2.y = Math.sin(angle) * radius; asset2.rotation = randomRotation(); asset2.alpha = 0.5 + Math.random() * 0.3; } else { var asset = self.attachAsset({ shape: shape, width: w, height: h, color: color, anchorX: 0.5, anchorY: 0.5 }, {}); asset.x = Math.cos(angle) * radius; asset.y = Math.sin(angle) * radius; asset.rotation = randomRotation(); asset.alpha = randomAlpha(); } } } else { // Overlay: 2-3 shapes stacked with different rotations var overlays = 2 + Math.floor(Math.random() * 2); for (var j = 0; j < overlays; j++) { var w = randomSize() * (0.7 + Math.random() * 0.5); var h = randomSize() * (0.7 + Math.random() * 0.5); var shape = randomShape(); var color = randomColor(); if (Array.isArray(color)) { var asset1 = self.attachAsset({ shape: shape, width: w, height: h, color: color[0], anchorX: 0.5, anchorY: 0.5 }, {}); asset1.rotation = randomRotation(); asset1.alpha = 0.5 + Math.random() * 0.5; var asset2 = self.attachAsset({ shape: shape, width: w, height: h, color: color[1], anchorX: 0.5, anchorY: 0.5 }, {}); asset2.rotation = randomRotation(); asset2.alpha = 0.3 + Math.random() * 0.3; } else { var asset = self.attachAsset({ shape: shape, width: w, height: h, color: color, anchorX: 0.5, anchorY: 0.5 }, {}); asset.rotation = randomRotation(); asset.alpha = 0.5 + Math.random() * 0.5; } } } } generatePattern(); // Pop-in animation self.scale.set(0.2, 0.2); tween(self.scale, { x: 1, y: 1 }, { duration: 350, easing: tween.elasticOut }); // Sparkle and glow effect: animate alpha and scale for shimmer function sparkleEffect(target) { // Animate alpha up and down for shimmer var _sparkleTween = function sparkleTween() { tween(target, { alpha: 1 }, { duration: 180 + Math.random() * 120, easing: tween.sineIn, onComplete: function onComplete() { tween(target, { alpha: 0.7 + Math.random() * 0.3 }, { duration: 180 + Math.random() * 120, easing: tween.sineOut, onComplete: _sparkleTween }); } }); }; _sparkleTween(); // Animate scale for a pulsing glow var _pulseTween = function pulseTween() { tween(target.scale, { x: 1.08, y: 1.08 }, { duration: 320 + Math.random() * 120, easing: tween.sineIn, onComplete: function onComplete() { tween(target.scale, { x: 1, y: 1 }, { duration: 320 + Math.random() * 120, easing: tween.sineOut, onComplete: _pulseTween }); } }); }; _pulseTween(); } // Apply sparkle effect to all children (shapes) of the pattern for (var i = 0; i < self.children.length; i++) { sparkleEffect(self.children[i]); } return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xffffff // White background for a clean canvas }); /**** * Game Code ****/ // We'll use the tween plugin for simple pop-in animations. /* We will use only shapes for patterns, with random colors and sizes. No need to predefine assets, as LK will auto-create them as needed. */ // No score, no timer, no GUI overlays // Store the current name and pattern containers var currentNameGroup = null; var currentPatterns = []; // "Tap Me" colorful text at the start var tapMeText = new Text2("Tap Me", { size: 220, fill: 0xFFFFFF, font: "Arial Black" }); tapMeText.anchor.set(0.5, 0.5); tapMeText.x = 2048 / 2; tapMeText.y = 2732 / 2 - 100; tapMeText.alpha = 1; game.addChild(tapMeText); // Animate the "Tap Me" text with color cycling and pulsing var tapMeColors = ["#ff5e5b", "#ffc857", "#4ecdc4", "#3a86ff", "#ffbe0b", "#fb5607", "#8338ec", "#ff006e", "#06d6a0", "#ff0099"]; var tapMeColorIdx = 0; var tapMePulseUp = true; var tapMePulseVal = 1; var tapMePulseSpeed = 0.012; game.update = function () { // Color cycle if (LK.ticks % 18 === 0 && tapMeText && tapMeText.setStyle) { tapMeColorIdx = (tapMeColorIdx + 1) % tapMeColors.length; tapMeText.setStyle({ fill: tapMeColors[tapMeColorIdx] }); } // Pulse if (tapMeText) { if (tapMePulseUp) { tapMePulseVal += tapMePulseSpeed; if (tapMePulseVal > 1.13) tapMePulseUp = false; } else { tapMePulseVal -= tapMePulseSpeed; if (tapMePulseVal < 0.87) tapMePulseUp = true; } tapMeText.scale.set(tapMePulseVal, tapMePulseVal); } }; // Helper: don't allow patterns in the top-left 100x100 px (menu area) function isInMenuArea(x, y) { return x < 100 && y < 100; } // List of fun, random, vibrant names var nameList = ["LUNA", "PIXEL", "NOVA", "SPARK", "BLAZE", "AURA", "VIVID", "ZEST", "GLOW", "TWIST", "DREAM", "FLASH", "PRISM", "BUBBLE", "SHINE", "VIBE", "JAZZ", "BLOSSOM", "BOLT", "WAVE"]; // Helper: pick a random name function getRandomName() { return nameList[Math.floor(Math.random() * nameList.length)]; } // Helper: get a vibrant color for text function getVibrantColor() { var colors = ["#ff5e5b", "#ffc857", "#4ecdc4", "#3a86ff", "#ffbe0b", "#fb5607", "#8338ec", "#ff006e", "#06d6a0", "#ff0099"]; return colors[Math.floor(Math.random() * colors.length)]; } // Create the "Clear" button (Text2 object) var clearBtn = new Text2("Clear", { size: 100, fill: "#222", font: "Arial Black" }); clearBtn.anchor.set(0.5, 0.5); // Place the button at the top right, with margin clearBtn.x = 2048 - 200; clearBtn.y = 120; clearBtn.interactive = true; clearBtn.buttonMode = true; game.addChild(clearBtn); // On tap/click anywhere, show a new large name made of patterns at that location (removing the previous one) game.down = function (x, y, obj) { // Don't allow patterns in menu area or on the clear button if (isInMenuArea(x, y)) return; // If tap is on the clear button, ignore (handled separately) var btnBounds = clearBtn.getBounds(); if (x >= clearBtn.x + btnBounds.x && x <= clearBtn.x + btnBounds.x + btnBounds.width && y >= clearBtn.y + btnBounds.y && y <= clearBtn.y + btnBounds.y + btnBounds.height) { return; } // Remove "Tap Me" text if present if (tapMeText) { tapMeText.destroy(); tapMeText = null; } // Remove previous patterns and name if exist if (currentPatterns && currentPatterns.length) { for (var i = 0; i < currentPatterns.length; i++) { currentPatterns[i].destroy(); } currentPatterns = []; } if (currentNameGroup) { currentNameGroup.destroy(); currentNameGroup = null; } // Pick a random name var name = getRandomName(); // Create a group container for the name var group = new Container(); // Instead of overlaying text, create a single large pattern for the name, and arrange smaller patterns to form a loose "name shape" // We'll use the number of letters to determine the number of patterns, but not show the text itself var patternCount = name.length; var patternSize = 340 + Math.random() * 120; // Make the main pattern very large var groupWidth = patternCount * patternSize * 0.7; var startX = -groupWidth / 2 + patternSize / 2; // Main large pattern in the center var mainPattern = new Pattern(); mainPattern.scale.set(2.2 + Math.random() * 0.7, 2.2 + Math.random() * 0.7); mainPattern.x = 0; mainPattern.y = 0; group.addChild(mainPattern); currentPatterns.push(mainPattern); // Arrange smaller patterns around the main one, in a loose arc or cluster for (var i = 0; i < patternCount; i++) { var angle = Math.PI * 0.7 * (i / (patternCount - 1) - 0.5); // spread in an arc var radius = patternSize * (1.1 + Math.random() * 0.5); var pattern = new Pattern(); var scale = 0.7 + Math.random() * 0.5; pattern.scale.set(scale, scale); pattern.x = Math.cos(angle) * radius; pattern.y = Math.sin(angle) * radius; group.addChild(pattern); currentPatterns.push(pattern); } // Center the group at the tap location group.x = x; group.y = y; currentNameGroup = group; game.addChild(group); }; // Handle "Clear" button tap: remove the patterns and name clearBtn.down = function (x, y, obj) { if (currentPatterns && currentPatterns.length) { for (var i = 0; i < currentPatterns.length; i++) { currentPatterns[i].destroy(); } currentPatterns = []; } if (currentNameGroup) { currentNameGroup.destroy(); currentNameGroup = null; } }; // No dragging or move/up handlers needed, as only one name is shown at a time;
===================================================================
--- original.js
+++ change.js
@@ -11,10 +11,391 @@
var self = Container.call(this);
// Generate a random pattern on creation
// Patterns: single shape, cluster, or overlay
function randomColor() {
- // Return a random bright color, sometimes as a gradient (simulated by overlaying two colors)
- var colors = [0xff5e5b, 0xffc857, 0x4ecdc4, 0x556270, 0x3a86ff, 0xffbe0b, 0xfb5607, 0x8338ec, 0xff006e, 0x06d6a0];
+ // Expanded palette: all visually distinct, vibrant, and basic colors
+ var colors = [0xff5e5b,
+ // red
+ 0xffc857,
+ // yellow
+ 0x4ecdc4,
+ // turquoise
+ 0x556270,
+ // blue gray
+ 0x3a86ff,
+ // blue
+ 0xffbe0b,
+ // gold
+ 0xfb5607,
+ // orange
+ 0x8338ec,
+ // purple
+ 0xff006e,
+ // magenta
+ 0x06d6a0,
+ // green
+ 0xffffff,
+ // white
+ 0x000000,
+ // black
+ 0x00ff00,
+ // lime
+ 0x00ffff,
+ // cyan
+ 0x0000ff,
+ // pure blue
+ 0xff00ff,
+ // fuchsia
+ 0xffff00,
+ // pure yellow
+ 0xff0000,
+ // pure red
+ 0x800000,
+ // maroon
+ 0x008000,
+ // dark green
+ 0x808000,
+ // olive
+ 0x800080,
+ // dark purple
+ 0x008080,
+ // teal
+ 0x808080,
+ // gray
+ 0xc0c0c0,
+ // silver
+ 0x7fffd4,
+ // aquamarine
+ 0xffa500,
+ // orange
+ 0x40e0d0,
+ // turquoise
+ 0x4682b4,
+ // steel blue
+ 0xdc143c,
+ // crimson
+ 0x20b2aa,
+ // light sea green
+ 0xf08080,
+ // light coral
+ 0xadd8e6,
+ // light blue
+ 0xe0ffff,
+ // light cyan
+ 0x90ee90,
+ // light green
+ 0xffb6c1,
+ // light pink
+ 0xff69b4,
+ // hot pink
+ 0xcd5c5c,
+ // indian red
+ 0x8a2be2,
+ // blue violet
+ 0xdeb887,
+ // burlywood
+ 0x00fa9a,
+ // medium spring green
+ 0x1e90ff,
+ // dodger blue
+ 0x7cfc00,
+ // lawn green
+ 0xff1493,
+ // deep pink
+ 0x00bfff,
+ // deep sky blue
+ 0x9932cc,
+ // dark orchid
+ 0x8b0000,
+ // dark red
+ 0x2e8b57,
+ // sea green
+ 0xff6347,
+ // tomato
+ 0x4682b4,
+ // steel blue
+ 0x9acd32,
+ // yellow green
+ 0x6495ed,
+ // cornflower blue
+ 0xffdab9,
+ // peach puff
+ 0xdda0dd,
+ // plum
+ 0xb0e0e6,
+ // powder blue
+ 0xf5deb3,
+ // wheat
+ 0xf0e68c,
+ // khaki
+ 0xe9967a,
+ // dark salmon
+ 0x48d1cc,
+ // medium turquoise
+ 0x00ced1,
+ // dark turquoise
+ 0x9400d3,
+ // dark violet
+ 0x00ff7f,
+ // spring green
+ 0x7b68ee,
+ // medium slate blue
+ 0x6a5acd,
+ // slate blue
+ 0x5f9ea0,
+ // cadet blue
+ 0x191970,
+ // midnight blue
+ 0x8b008b,
+ // dark magenta
+ 0x556b2f,
+ // dark olive green
+ 0x228b22,
+ // forest green
+ 0xd2691e,
+ // chocolate
+ 0xb22222,
+ // firebrick
+ 0x808080,
+ // gray
+ 0x00008b,
+ // dark blue
+ 0x008b8b,
+ // dark cyan
+ 0xb8860b,
+ // dark goldenrod
+ 0xa9a9a9,
+ // dark gray
+ 0x006400,
+ // dark green
+ 0xbdb76b,
+ // dark khaki
+ 0x8b008b,
+ // dark magenta
+ 0x556b2f,
+ // dark olive green
+ 0xff8c00,
+ // dark orange
+ 0x9932cc,
+ // dark orchid
+ 0x8b0000,
+ // dark red
+ 0xe9967a,
+ // dark salmon
+ 0x8fbc8f,
+ // dark sea green
+ 0x483d8b,
+ // dark slate blue
+ 0x2f4f4f,
+ // dark slate gray
+ 0x00ced1,
+ // dark turquoise
+ 0x9400d3,
+ // dark violet
+ 0xff1493,
+ // deep pink
+ 0x00bfff,
+ // deep sky blue
+ 0x696969,
+ // dim gray
+ 0x1e90ff,
+ // dodger blue
+ 0xb22222,
+ // firebrick
+ 0xfffaf0,
+ // floral white
+ 0x228b22,
+ // forest green
+ 0xff00ff,
+ // fuchsia
+ 0xdcdcdc,
+ // gainsboro
+ 0xf8f8ff,
+ // ghost white
+ 0xffd700,
+ // gold
+ 0xdaa520,
+ // goldenrod
+ 0x808080,
+ // gray
+ 0x008000,
+ // green
+ 0xadff2f,
+ // green yellow
+ 0xf0fff0,
+ // honeydew
+ 0xff69b4,
+ // hot pink
+ 0xcd5c5c,
+ // indian red
+ 0x4b0082,
+ // indigo
+ 0xfffff0,
+ // ivory
+ 0xf0e68c,
+ // khaki
+ 0xe6e6fa,
+ // lavender
+ 0xfff0f5,
+ // lavender blush
+ 0x7cfc00,
+ // lawn green
+ 0xfffacd,
+ // lemon chiffon
+ 0xadd8e6,
+ // light blue
+ 0xf08080,
+ // light coral
+ 0xe0ffff,
+ // light cyan
+ 0xfafad2,
+ // light goldenrod yellow
+ 0xd3d3d3,
+ // light gray
+ 0x90ee90,
+ // light green
+ 0xffb6c1,
+ // light pink
+ 0xffa07a,
+ // light salmon
+ 0x20b2aa,
+ // light sea green
+ 0x87cefa,
+ // light sky blue
+ 0x778899,
+ // light slate gray
+ 0xb0c4de,
+ // light steel blue
+ 0xffffe0,
+ // light yellow
+ 0x00ff00,
+ // lime
+ 0x32cd32,
+ // lime green
+ 0xfaf0e6,
+ // linen
+ 0xff00ff,
+ // magenta
+ 0x800000,
+ // maroon
+ 0x66cdaa,
+ // medium aquamarine
+ 0x0000cd,
+ // medium blue
+ 0xba55d3,
+ // medium orchid
+ 0x9370db,
+ // medium purple
+ 0x3cb371,
+ // medium sea green
+ 0x7b68ee,
+ // medium slate blue
+ 0x00fa9a,
+ // medium spring green
+ 0x48d1cc,
+ // medium turquoise
+ 0xc71585,
+ // medium violet red
+ 0x191970,
+ // midnight blue
+ 0xf5fffa,
+ // mint cream
+ 0xffe4e1,
+ // misty rose
+ 0xffe4b5,
+ // moccasin
+ 0xffdead,
+ // navajo white
+ 0x000080,
+ // navy
+ 0xfdf5e6,
+ // old lace
+ 0x808000,
+ // olive
+ 0x6b8e23,
+ // olive drab
+ 0xffa500,
+ // orange
+ 0xff4500,
+ // orange red
+ 0xda70d6,
+ // orchid
+ 0xeee8aa,
+ // pale goldenrod
+ 0x98fb98,
+ // pale green
+ 0xafeeee,
+ // pale turquoise
+ 0xdb7093,
+ // pale violet red
+ 0xffefd5,
+ // papaya whip
+ 0xffdab9,
+ // peach puff
+ 0xcd853f,
+ // peru
+ 0xffc0cb,
+ // pink
+ 0xdda0dd,
+ // plum
+ 0xb0e0e6,
+ // powder blue
+ 0x800080,
+ // purple
+ 0xff0000,
+ // red
+ 0xbc8f8f,
+ // rosy brown
+ 0x4169e1,
+ // royal blue
+ 0x8b4513,
+ // saddle brown
+ 0xfa8072,
+ // salmon
+ 0xf4a460,
+ // sandy brown
+ 0x2e8b57,
+ // sea green
+ 0xfff5ee,
+ // seashell
+ 0xa0522d,
+ // sienna
+ 0xc0c0c0,
+ // silver
+ 0x87ceeb,
+ // sky blue
+ 0x6a5acd,
+ // slate blue
+ 0x708090,
+ // slate gray
+ 0xfffafa,
+ // snow
+ 0x00ff7f,
+ // spring green
+ 0x4682b4,
+ // steel blue
+ 0xd2b48c,
+ // tan
+ 0x008080,
+ // teal
+ 0xd8bfd8,
+ // thistle
+ 0xff6347,
+ // tomato
+ 0x40e0d0,
+ // turquoise
+ 0xee82ee,
+ // violet
+ 0xf5deb3,
+ // wheat
+ 0xffffff,
+ // white
+ 0xf5f5f5,
+ // white smoke
+ 0xffff00,
+ // yellow
+ 0x9acd32 // yellow green
+ ];
if (Math.random() < 0.3) {
// Simulate a gradient by returning an array of two colors
var c1 = colors[Math.floor(Math.random() * colors.length)];
var c2 = colors[Math.floor(Math.random() * colors.length)];