Code Sketch


horror story part 1 made by alok
By: Mhalsakant School
Category: Programming
//> using platform jvm
//> using jvm 17

import javax.swing._
import javax.swing.event._
import java.awt._
import java.awt.event._

object HorrorStoryPart1App {

  def main(args: Array[String]): Unit = {

    SwingUtilities.invokeLater(new Runnable {
      def run(): Unit = {

        // STORY DATA (HORROR STORY PART 1 - EPISODES 1 TO 20 in Hindi & English)
        val storyData: Map[String, String] = Map(
          "Chapter 1: The Late Night Rumor" ->
            """==================================================
              |HORROR STORY PART 1: THE HAUNTED HOSTEL
              |Written & Adapted by Bixuu (Hindi & English Mix)
              |==================================================
              |
              |MAIN CHARACTERS:
              | - Alok (The Fearless Leader)
              | - Bhavesh (The Hungry & Scared Friend)
              | - Yadnesh (The Smart & Analytical Thinker)
              |
              |CHAPTER 1 STORY & DIALOGUES:
              |College ke hostel mein raat ke 2 baj rahe the. Alok, Bhavesh aur Yadnesh apne room mein baithe the jab unhone campus ke purane block (Room 404) ke baare mein ek darawani kahani suni. Wahan saalon pehle ek student ki rahasyamayi maut ho gayi thi.
              |
              |Bhavesh (Darte hue chips khate hue): "Yaaron, maine suna hai us room mein aaj bhi uski aatma ghumti hai. Hume wahan bilkul nahi jana chahiye!"
              |Alok: "Arre Bhavesh, wo sab sirf bachpane ki afwahayein (rumors) hain. Chalo check karke aate hain sach kya hai!"
              |===================================================""".stripMargin,

          "Chapter 2: Entering the Old Block" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 2 STORY & DIALOGUES:
              |Teeno apne room se nikal kar college ke purane block ki taraf chal padte hain. Wahan ki roshni flickering tube lights ki wajah se aur bhi darawani lag rahi thi. Zameen par sannaata chaaya hua tha.
              |
              |Yadnesh (Apne phone ki torch on karte hue): "Yahan ka atmosphere sach mein ajeeb hai. Guard bhi is block ki taraf nahi aata."
              |===================================================""".stripMargin,

          "Chapter 3: Standing Outside Room 404" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 3 STORY & DIALOGUES:
              |Aakhirkar teeno 'Room 404' ke darwaze ke samne pahunch jate hain. Darwaze par ek purana lohe ka tala laga hua tha aur us par 'KEEP OUT' likha hua tha.
              |
              |Bhavesh: "Dekho, tala laga hai! Iska matlab koi andar nahi ja sakta. Chalo ab wapas chalte hain room par!"
              |Alok: "Ruk toh sahi, dekhte hain khula hai ya nahi."
              |===================================================""".stripMargin,

          "Chapter 4: The Unlocked Door" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 4 STORY & DIALOGUES:
              |Alok jaise hi tale ko haath lagata hai, tala achanak gir padta hai?jaise kisi ne andar se use khol diya ho. Darwaza dheere-dheere apne aap khulne lagta hai aur ek thandi hawa ka jhonka bahar aata hai.
              |
              |Yadnesh (Hairan hote hue): "Tala toh band tha... phir yeh achanak kaise khul gaya?!"
              |===================================================""".stripMargin,

          "Chapter 5: Stepping Inside the Room" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 5 STORY & DIALOGUES:
              |Teeno dare-sahme andar kadam rakhte hain. Room ke andar moti dhool thi, purana bed tha, aur ek table par ek diary khuli padi thi jiske panno par kuch laal syaahi se likha tha.
              |
              |Bhavesh (Kaanpete hue): "Mujhe yahan se ajeeb si smell aa rahi hai... jaise kuch jala hua ho."
              |Alok: "Us table par dekho, wo diary kiski hai?"
              |===================================================""".stripMargin,

          "Chapter 6: Opening the Cursed Diary" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 6 STORY & DIALOGUES:
              |Yadnesh aage badhta hai aur us diary ko uthata hai. Jaise hi wo pehla panna palatata hai, us par likha hota hai: *'Jisne bhi yeh panna padha, wo yahan se zinda bahar nahi ja sakega.'*
              |
              |Yadnesh (Ghabrate hue): "Guys... yeh koi normal diary nahi hai!"
              |===================================================""".stripMargin,

          "Chapter 7: The Heavy Slam" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 7 STORY & DIALOGUES:
              |Achanak ek tez hawa ka jhonka aata hai aur room ka main darwaza zor se *BANG* ki aawaz ke sath band ho jata hai. Bahar se tala lagne ki aawaz aati hai.
              |
              |Bhavesh (Cheekhte hue): "Darwaza band ho gaya! Hum andar qaid ho gaye hain!"
              |Alok (Darwaze ko dhakka dete hue): "Yeh kya mazak hai?! Kholo ise!"
              |===================================================""".stripMargin,

          "Chapter 8: Flickering Lights and Shadows" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 8 STORY & DIALOGUES:
              |Room ke andar ka bulb zor-zor se blink karne lagta hai aur kuch hi seconds mein poori tarah fus ho jata hai. Ab sirf Yadnesh ke phone ki torch hi unka sahara bachti hai. Deewaron par ajeeb parchhaiyan (shadows) ghumne lagti hain.
              |
              |Yadnesh: "Apne phone ki torch band mat karna, kuch toh room ke andar move kar raha hai!"
              |===================================================""".stripMargin,

          "Chapter 9: Whispers in the Dark" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 9 STORY & DIALOGUES:
              |Andhere mein se kisi ke dheere se hasne ki aawaz aati hai?*Hehehe...*. Aisa lagta hai ki koi unke bilkul kaan ke paas khada hokar unka naam pukar raha hai.
              |
              |Bhavesh (Rone ki halat mein): "Main nahi reh sakta yahan! Mujhe ghar jana hai!"
              |Alok: "Shhh! Calm down Bhavesh, hum milkar rasta nikal lenge."
              |===================================================""".stripMargin,

          "Chapter 10: Yadnesh's Discovery" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 10 STORY & DIALOGUES:
              |Yadnesh torch ki roshni ko room ke kone mein maarta hai wahan ek purana mirror hota hai. Mirror mein unko unke alawa ek aur safed parchhai dikhai deti hai jo unki taraf dekh rahi hoti hai.
              |
              |Yadnesh: "Mirror ki taraf dekho! Wo... wo wahan kaun hai?!"
              |===================================================""".stripMargin,

          "Chapter 11: The Mirror Apparition" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 11 STORY & DIALOGUES:
              |Mirror ke andar se wo parchhai dheere-dheere bahar aane lagti hai. Ek aatma jiske baal bikhre hue the aur aankhein khali thin, teeno ke samne khadi ho jati hai.
              |
              |Ghost (Bhayankar aawaz mein): "Tumne mere room mein aane ki himmat kaise ki? Ab tumhari baari hai!"
              |===================================================""".stripMargin,

          "Chapter 12: Alok's Brave Stand" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 12 STORY & DIALOGUES:
              |Alok darta nahi hai, balki wo aage aakar us aatma ki aankhon mein dekhta hai. Use yaad aata hai ki aatmaein tabhi tak powerful hoti hain jab tak log unse darte hain.
              |
              |Alok: "Humne tujhe pareshan nahi kiya, hum toh bas sach janne aaye the! Hum tujhse nahi darte!"
              |===================================================""".stripMargin,

          "Chapter 13: Bhavesh Finds the Hidden Switch" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 13 STORY & DIALOGUES:
              |Darte-darte Bhavesh ka haath deewar par lagta hai jahan ek secret switch board hota hai. Wo galti se switch daba deta hai, aur room ki sari lights achanak ek sath on ho jati hain!
              |
              |Bhavesh: "Are! Light chalu ho gayi!"
              |===================================================""".stripMargin,

          "Chapter 14: Weakening the Ghost" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 14 STORY & DIALOGUES:
              |Tez roshni aate hi aatma dard se cheekh padti hai kyuki andhere ki taakat roshni ke samne kamzor padne lagti hai. Uski parchhai dhire-dheere gayab hone lagti hai.
              |
              |Yadnesh: "Light se wo weak ho rahi hai! Alok, wahan window ke paas jao!"
              |===================================================""".stripMargin,

          "Chapter 15: Breaking the Window" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 15 STORY & DIALOGUES:
              |Alok ek heavy stool uthata hai aur window ke kanch par dekar maarta hai. Kanch toot jata hai aur bahar ki fresh hawa aur suraj ki roshni andar aane lagti hai.
              |
              |Alok: "Yadnesh, Bhavesh! Jaldi se window se bahar kudo!"
              |===================================================""".stripMargin,

          "Chapter 16: Escaping through the Window" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 16 STORY & DIALOGUES:
              |Pehle Bhavesh, phir Yadnesh aur aakhir mein Alok ek-ek karke window se bahar ground par kood jate hain. Wo thoda zakhmi hote hain par jaan bach jati hai.
              |
              |Bhavesh (Haafte hue): "Bach gaye! Oh god, main zinda hoon!"
              |===================================================""".stripMargin,

          "Chapter 17: Looking Back at Room 404" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 17 STORY & DIALOGUES:
              |Jab wo mudkar Room 404 ki window ki taraf dekhte hain, toh wahan khidki par wahi aatma khadi hokar unhe gusse se dekh rahi hoti hai, par wo bahar nahi aa sakti thi.
              |
              |Yadnesh: "Humne Part 1 mein is musibat se toh jaan chuda li, par yeh aatma wahan se kahin nahi jane wali."
              |===================================================""".stripMargin,

          "Chapter 18: Returning to Safety" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 18 STORY & DIALOGUES:
              |Teeno daudte hue apne hostel room mein wapas aate hain aur chain ki saans lete hain. Wo samajh chuke the ki college ka wo block kitna khatarnak hai.
              |
              |Alok: "Aaj ke baad koi bhi us block ke paas nahi jayega. Yeh hamari strict warning hai."
              |===================================================""".stripMargin,

          "Chapter 19: The Bond Gets Stronger" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 19 STORY & DIALOGUES:
              |Is darawane anubhav ne Alok, Bhavesh aur Yadnesh ki dosti ko aur bhi zyada pakka kar diya tha. Wo jante the ki musibat chahe kaisi bhi ho, wo sath milkar har cheez ka samna kar sakte hain.
              |
              |Bhavesh: "Thanks yaaron, tumne mujhe bachane mein bohot himmat dikhayi."
              |===================================================""".stripMargin,

          "Chapter 20: Part 1 Grand Finale & Cliffhanger" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 20 STORY & DIALOGUES (PART 1 FINALE):
              |Subah hone par sab kuch normal lagta hai, par jab Yadnesh apna bag kholta hai toh usme wahi purani diary rakhi milti hai?jabki usne wo room mein hi chhod di thi! Aage kya hoga?
              |
              |THE END - HORROR STORY PART 1 WRITTEN & ADAPTED BY BIXUU.
              |==================================================
              |
              |? ANNOUNCEMENT FROM CREATOR BIXUU:
              |"ALOK, BHAVESH AND YADNESH SURVIVED PART 1 OF THE HAUNTED HOSTEL! 
              |Stay tuned for Horror Story Part 2!"
              |===================================================""".stripMargin
        )

        // 3. GUI WINDOW CREATION
        val frame = new JFrame("Horror Viewer: THE HAUNTED HOSTEL PART 1 - By Bixuu")
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)
        frame.setSize(950, 650)
        frame.setLocationRelativeTo(null)

        // Header Theme Color (Dark Blue-Grey & Crimson)
        val headerLabel = new JLabel("  ? HORROR STORY PART 1: THE HAUNTED HOSTEL (Alok, Bhavesh & Yadnesh)  ", SwingConstants.CENTER)
        headerLabel.setFont(new Font("Arial", Font.BOLD, 14))
        headerLabel.setOpaque(true)
        headerLabel.setBackground(new Color(20, 30, 50))
        headerLabel.setForeground(Color.WHITE)
        headerLabel.setPreferredSize(new Dimension(950, 40))

        // Chapter List
        val chapterKeys = (1 to 20).map(i => storyData.keys.find(_.startsWith(s"Chapter $i:")).getOrElse(s"Chapter $i")).toArray
        val listModel = new DefaultListModel[String]()
        chapterKeys.foreach(listModel.addElement)

        val chapterList = new JList[String](listModel)
        chapterList.setFont(new Font("Arial", Font.PLAIN, 12))
        chapterList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION)
        chapterList.setSelectedIndex(0)

        val listScrollPane = new JScrollPane(chapterList)
        listScrollPane.setPreferredSize(new Dimension(320, 500))

        // Story Text Area (Dark Horror Theme)
        val storyArea = new JTextArea()
        storyArea.setFont(new Font("Monospaced", Font.PLAIN, 13))
        storyArea.setEditable(false)
        storyArea.setLineWrap(true)
        storyArea.setWrapStyleWord(true)
        storyArea.setBackground(new Color(15, 15, 20))
        storyArea.setForeground(new Color(220, 220, 255))
        storyArea.setText(storyData(chapterKeys(0)))
        storyArea.setCaretPosition(0)

        val textScrollPane = new JScrollPane(storyArea)

        // Selection Listener
        chapterList.addListSelectionListener(new ListSelectionListener {
          def valueChanged(e: ListSelectionEvent): Unit = {
            if (!e.getValueIsAdjusting) {
              val selectedKey = chapterList.getSelectedValue
              if (selectedKey != null && storyData.contains(selectedKey)) {
                storyArea.setText(storyData(selectedKey))
                storyArea.setCaretPosition(0)
              }
            }
          }
        })

        // Layout Assembly
        val mainPanel = new JPanel(new BorderLayout())
        mainPanel.add(headerLabel, BorderLayout.NORTH)
        mainPanel.add(listScrollPane, BorderLayout.WEST)
        mainPanel.add(textScrollPane, BorderLayout.CENTER)

        frame.add(mainPanel)
        frame.setVisible(true)
      }
    })
  }
}

HorrorStoryPart1App.main(Array())