Code Sketch


yadnesh shahare
By: Mhalsakant School
Category: Programming
// --- Ultimate Cyber-Spectacular Independence Day Animation & Celebration ---

cleari()

var globalStep = 0.0

animateWithState(0.0) { angle =>
  erasePictures()

  // 1. Dynamic Deep Space Cyber Background with Twinkling Starfield
  setBackground(Color(4, 7, 18))
  
  for (i <- 0 until 100) {
    val x = (i * 37) % 540 - 270
    val y = (i * 53) % 460 - 230
    val size = if (i % 5 == 0) 3 else if (i % 2 == 0) 2 else 1
    val star = Picture.circle(size)
    star.setFillColor(if (i % 3 == 0) Color(255, 215, 0) else Color(255, 255, 255))
    star.setPenColor(noColor)
    star.setPosition(x, y)
    draw(star)
  }

  // 2. High-Tech Dual Laser Light Show Sweep
  val laserSweep = Math.sin(angle * 0.05) * 190.0
  val laser1 = Picture.line(laserSweep, 460)
  laser1.setPenColor(Color(0, 255, 200))
  laser1.setPenThickness(2)
  laser1.setPosition(0, -220)
  draw(laser1)

  val laser2 = Picture.line(-laserSweep, 460)
  laser2.setPenColor(Color(255, 100, 200))
  laser2.setPenThickness(2)
  laser2.setPosition(0, -220)
  draw(laser2)

  // 3. Ultra-Realistic Waving Tricolour Flag with Metallic Pole & Base Stand
  val pole = Picture.line(0, 290)
  pole.setPenColor(Color(200, 200, 220))
  pole.setPenThickness(6)
  pole.setPosition(-160, -115)
  draw(pole)

  val poleTop = Picture.circle(9)
  poleTop.setFillColor(Color(255, 215, 0))
  poleTop.setPenColor(noColor)
  poleTop.setPosition(-160, 175)
  draw(poleTop)

  // Advanced multi-segment waving cloth effect
  val flagWidth = 240.0
  val flagHeight = 110.0
  val segments = 28
  val segWidth = flagWidth / segments

  for (s <- 0 until segments) {
    val waveOffset = Math.sin(angle * 0.09 + s * 0.35) * 7.5
    val fx = -160.0 + (s * segWidth)
    
    // Saffron Stripe Segment
    val saffronSeg = Picture.rect(segWidth + 1.2, flagHeight / 3)
    saffronSeg.setFillColor(Color(255, 153, 51))
    saffronSeg.setPenColor(noColor)
    saffronSeg.setPosition(fx + segWidth/2, 115 + waveOffset)
    draw(saffronSeg)

    // White Stripe Segment
    val whiteSeg = Picture.rect(segWidth + 1.2, flagHeight / 3)
    whiteSeg.setFillColor(Color(255, 255, 255))
    whiteSeg.setPenColor(noColor)
    whiteSeg.setPosition(fx + segWidth/2, 78 + waveOffset)
    draw(whiteSeg)

    // Green Stripe Segment
    val greenSeg = Picture.rect(segWidth + 1.2, flagHeight / 3)
    greenSeg.setFillColor(Color(18, 136, 7))
    greenSeg.setPenColor(noColor)
    greenSeg.setPosition(fx + segWidth/2, 41 + waveOffset)
    draw(greenSeg)
  }

  // 4. Ultra-Smooth Rotating Ashok Chakra Positioned Perfectly on the Waving Flag
  val chakraX = -40.0
  val chakraY = 78.0
  
  val chakraAura = Picture.circle(28)
  chakraAura.setFillColor(noColor)
  chakraAura.setPenColor(Color(0, 255, 255))
  chakraAura.setPenThickness(1.5)
  chakraAura.setPosition(chakraX, chakraY)
  draw(chakraAura)

  val chakraBg = Picture.circle(23)
  chakraBg.setFillColor(Color(255, 255, 255))
  chakraBg.setPenColor(Color(0, 56, 168))
  chakraBg.setPenThickness(2.5)
  chakraBg.setPosition(chakraX, chakraY)
  draw(chakraBg)

  // 24 Dynamic Rotating Spokes
  for (s <- 0 until 24) {
    val spokeAngle = Math.toRadians(s * 15 + angle * 3.5)
    val dx = Math.cos(spokeAngle) * 20
    val dy = Math.sin(spokeAngle) * 20
    val spoke = Picture.line(dx, dy)
    spoke.setPenColor(Color(0, 56, 168))
    spoke.setPenThickness(1.2)
    spoke.setPosition(chakraX, chakraY)
    draw(spoke)
  }

  // 5. Triple Multi-Color Fireworks System with Expanding Rings
  val burst1 = (angle * 0.12) % 15.0
  if (burst1 < 8.5) {
    for (p <- 0 until 20) {
      val pAngle = p * (Math.PI / 10)
      val radius = burst1 * 28.0
      val px = 110 + Math.cos(pAngle) * radius
      val py = 85 + Math.sin(pAngle) * radius
      
      val spark = Picture.circle(3)
      spark.setFillColor(if (p % 2 == 0) Color(255, 215, 0) else Color(0, 255, 255))
      spark.setPenColor(noColor)
      spark.setPosition(px, py)
      draw(spark)
    }
  }

  val burst2 = ((angle * 0.12) + 6.0) % 15.0
  if (burst2 < 8.5) {
    for (p <- 0 until 20) {
      val pAngle = p * (Math.PI / 10)
      val radius = burst2 * 28.0
      val px = 135 + Math.cos(pAngle) * radius
      val py = -30 + Math.sin(pAngle) * radius
      
      val spark = Picture.circle(3)
      spark.setFillColor(if (p % 2 == 0) Color(255, 100, 200) else Color(255, 255, 255))
      spark.setPenColor(noColor)
      spark.setPosition(px, py)
      draw(spark)
    }
  }

  // 6. Glowing Neon Typography: Happy Independence Day
  val titleShadow = Picture.text("Happy Independence Day", 22)
  titleShadow.setPenColor(Color(0, 50, 100))
  titleShadow.setPosition(-132, -42)
  draw(titleShadow)

  val titleText = Picture.text("Happy Independence Day", 22)
  titleText.setPenColor(Color(255, 255, 255))
  titleText.setPosition(-130, -40)
  draw(titleText)

  // 7. Giant Animated '80' Year Badge with Pulsing Aura Glow
  val pulseScale = 1.0 + Math.sin(angle * 0.1) * 0.04
  val yearBadge = Picture.text("80", 75)
  yearBadge.setPenColor(Color(255, 215, 0))
  yearBadge.setPosition(-55, -150)
  draw(yearBadge)

  // 8. New Feature: Bottom Animated Audio Equalizer / Celebration Waveform
  for (i <- 0 until 16) {
    val barHeight = (Math.abs(Math.sin(angle * 0.1 + i * 0.5)) * 30).toInt + 5
    val eqBar = Picture.rect(6, barHeight)
    eqBar.setFillColor(if (i % 3 == 0) Color(255, 153, 51) else if (i % 3 == 1) Color(255, 255, 255) else Color(18, 136, 7))
    eqBar.setPenColor(noColor)
    eqBar.setPosition(-220 + (i * 30), -195)
    draw(eqBar)
  }

  // 9. Dynamic Floating Confetti Fountain
  for (c <- 0 until 18) {
    val cx = Math.sin(angle * 0.04 + c * 0.4) * 230
    val cy = -170 + ((globalStep + c * 16) % 200)
    val confetti = Picture.circle(4)
    confetti.setFillColor(if (c % 3 == 0) Color(255, 153, 51) else if (c % 3 == 1) Color(0, 255, 255) else Color(255, 215, 0))
    confetti.setPenColor(noColor)
    confetti.setPosition(cx, cy)
    draw(confetti)
  }

  globalStep += 1.2
  (angle + 2.5) % 360.0
}