Code Sketch


alex
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 HorrorStoryPart2App {

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

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

        // STORY DATA (HORROR STORY PART 2 - EPISODES 1 TO 20 in Hindi & English)
        val storyData: Map[String, String] = Map(
          "Chapter 1: The Diary Returns" ->
            """==================================================
              |HORROR STORY PART 2: THE HAUNTED HOSTEL - RETURN OF THE CURSE
              |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:
              |Subah jab Yadnesh ne apna bag khola, toh wahi purani khuni diary wapas wahan rakhi mili jise wo Room 404 mein hi chhod aaye the. Bag se achanak ek thandi bhaap nikalne lagi.
              |
              |Yadnesh (Kaanpete hue haath se diary pakadte hue): "Yeh... yeh kaise mumkin hai? Maine toh isse wahin table par chhod diya tha!"
              |Alok: "Lagta hai aatma ne apna peecha nahi chhoda hai."
              |===================================================""".stripMargin,

          "Chapter 2: The Mysterious Dark Mark" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 2 STORY & DIALOGUES:
              |Bhavesh jab apna haath washbasin par dhone jata hai, toh achanak mirror mein dekhta hai ki uski gardan par ek kaala nishaan ban gaya hai, bilkul waisa jaisa aatma ka haath tha.
              |
              |Bhavesh (Cheekhte hue): "Alok! Yadnesh! Jaldi yahan aao! Mera haal dekho!"
              |Alok: "Yeh nishaan... wo aatma humara peecha kar rahi hai."
              |===================================================""".stripMargin,

          "Chapter 3: Yadnesh's Research" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 3 STORY & DIALOGUES:
              |Yadnesh apna laptop kholta hai aur college ki purani history khangalne lagta hai. Use pata chalta hai ki 15 saal pehle 'Maya' naam ki ek girl student ki usi Room 404 mein rahasyamayi maut hui thi aur uske killer ka aaj tak pata nahi chala.
              |
              |Yadnesh: "Dekho guys, us ladki ka naam Maya tha. Uske sath kuch galat hua tha aur wo badla lena chahti hai."
              |===================================================""".stripMargin,

          "Chapter 4: The Power Outage in the Entire Hostel" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 4 STORY & DIALOGUES:
              |Achanak poore college hostel ki light ek sath chali jati hai. Bahar tez aandhi chalne lagti hai aur baaki rooms ke students dar ke mare baahar corridor mein nikal aate hain.
              |
              |Bhavesh: "Light firse chali gayi! Aur yeh aawazein kaisi hain?"
              |Alok: "Kuch toh hone wala hai, sab alert raho!"
              |===================================================""".stripMargin,

          "Chapter 5: Footsteps Outside the Door" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 5 STORY & DIALOGUES:
              |Teeno ke room ke darwaze par kisi ke bhaari joote pehan kar chalne ki aawaz aati hai. Awaaz dheere-dheere unke darwaze ke bilkul paas aakar ruk jati hai.
              |
              |Yadnesh (Whispering): "Darwaza band kardo aur chup chap baitho... wo bahar hi hai."
              |===================================================""".stripMargin,

          "Chapter 6: The Blood-Red Message on the Wall" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 6 STORY & DIALOGUES:
              |Jab Alok torch ki roshni apne room ki deewar par dalta hai, toh dekhta hai ki laal syaahi se deewar par likha hai: 'YOU CANNOT RUN FROM ME'.
              |
              |Bhavesh (Rote hue): "Main ab aur yeh sab nahi seh sakta! Hum marne wale hain!"
              |Alok: "Himmat mat har Bhavesh, hum rasta dhoondh lenge."
              |===================================================""".stripMargin,

          "Chapter 7: Seeking Help from Warden Sir" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 7 STORY & DIALOGUES:
              |Teeno himmat karke apne hostel warden (Mr. Sharma) ke room ki taraf bhagte hain unse madad mangne ke liye. Par warden ke room ka darwaza andar se khula hota hai aur andar koi nahi hota.
              |
              |Yadnesh: "Warden sir kahan hain? Aur unka table itna bikhra hua kyu hai?"
              |===================================================""".stripMargin,

          "Chapter 8: Finding Warden's Old Logbook" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 8 STORY & DIALOGUES:
              |Warden ke table par ek purani logbook khuli milti hai. Usme likha hota hai ki 15 saal pehle warden ne hi Maya ko chupke se Room 404 mein band kar diya tha jisse uska dum ghut gaya tha.
              |
              |Alok: "Toh iska matlab Maya ki maut ka asli zimmedar warden tha! Isiliye wo sabse badla le rahi hai!"
              |===================================================""".stripMargin,

          "Chapter 9: The Ghost Appears in the Corridor" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 9 STORY & DIALOGUES:
              |Hostel ke corridor mein achanak ek bhayankar roop mein Maya ki aatma prakat hoti hai. Uski aankhon se khoon beh raha hota hai aur uska gussa saatve aasmaan par hota hai.
              |
              |Maya's Ghost (Gusse mein chillate hue): "Warden kahan hai?! Usne mujhe dhokha diya tha! Tum sab bhi maroge!"
              |===================================================""".stripMargin,

          "Chapter 10: Running Towards the Old Block Again" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 10 STORY & DIALOGUES:
              |Aatma se bachne ke liye teeno wapas purane block ki taraf bhagte hain kyunki Yadnesh ke paas ek plan hota hai?agar Maya ko uska sach mil jaye toh shayad wo shant ho jaye.
              |
              |Yadnesh: "Agar hum logbook Room 404 mein rakh dein, toh use sach pata chal jayega!"
              |Bhavesh: "Tum pagal ho gaye ho kya?! Wapas wahin jaana hai?!"
              |===================================================""".stripMargin,

          "Chapter 11: Trapped Inside Room 404 Once More" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 11 STORY & DIALOGUES:
              |Teeno dobara Room 404 ke andar ghuste hain. Is baar room ke andar ka nazara aur bhi zyada darawana tha?charo taraf hawayein chal rahi thi aur purana samaan hawa mein ud raha tha.
              |
              |Alok: "Jaldi karo Yadnesh, wo aati hi hogi!"
              |===================================================""".stripMargin,

          "Chapter 12: Placing the Logbook on the Altar" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 12 STORY & DIALOGUES:
              |Yadnesh jaldi se warden ki logbook ko us purane table par rakh deta hai jahan pehli diary mili thi. Logbook khulte hi usme likha sach aatma ke samne aa jata hai.
              |
              |Yadnesh: "Yeh lo Maya! Dekho kisne maara tha tumhe! Humare sath ab aur kuch mat karo!"
              |===================================================""".stripMargin,

          "Chapter 13: Maya Reads the Truth" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 13 STORY & DIALOGUES:
              |Maya ki aatma hawa mein ruk jati hai aur logbook ke panno ki taraf dekhti hai. Jaise hi use warden ka sach pata chalta hai, uski aatma ka gussa aur bhi zyada bhayankar roop le leta hai.
              |
              |Maya's Ghost: "Warden... usne meri jaan li thi! Main use nahi chhodungi!"
              |===================================================""".stripMargin,

          "Chapter 14: The Chase for the Warden" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 14 STORY & DIALOGUES:
              |Achanak Maya ki aatma room se gayab ho jati hai aur hostel ke office ki taraf daudti hai jahan warden chupa baitha tha. Teeno bhi uske peeche-peeche jate hain.
              |
              |Bhavesh: "Dekho wo warden ke room ki taraf gayi hai!"
              |===================================================""".stripMargin,

          "Chapter 15: Confrontation in the Warden's Office" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 15 STORY & DIALOGUES:
              |Warden apne office mein dare-sahme chup kar baitha tha jab Maya ki aatma deewar todte hue andar ghus jati hai aur warden ka gala pakad leti hai.
              |
              |Warden (Haafte hue, rone lagte hue): "Mujhe maaf kardo Maya! Maine galti ki thi!"
              |Maya's Ghost: "Ab koi maafi nahi milegi!"
              |===================================================""".stripMargin,

          "Chapter 16: The Justice of the Spirit" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 16 STORY & DIALOGUES:
              |Ek ajeeb sa noor aur aag ka gola office mein fail jata hai. Maya apna badla pura karke warden ko apne sath le jane lagti hai. Kamre mein ek sannata cha jata hai.
              |
              |Alok: "Use uska insaaf mil gaya... ab wo shant ho jayegi."
              |===================================================""".stripMargin,

          "Chapter 17: Disappearance of the Curse" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 17 STORY & DIALOGUES:
              |Subah ki pehli kiran hostel par padti hai. College ki sari lights achanak on ho jati hain aur Bhavesh ki gardan se wo kaala nishaan bhi dheere-dheere gayab ho jata hai.
              |
              |Bhavesh (Khush hote hue): "Dekho! Nishaan chala gaya! Hum sach mein bach gaye!"
              |===================================================""".stripMargin,

          "Chapter 18: Peace Returns to the Campus" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 18 STORY & DIALOGUES:
              |College administration ko warden ke jurm ke baare mein pata chal jata hai. Room 404 ko hamesha ke liye permanent seal kar diya jata hai.
              |
              |Yadnesh: "Aakhirkar college ko us manhoos saaye se mukti mil gayi."
              |===================================================""".stripMargin,

          "Chapter 19: Farewell to Fear" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 19 STORY & DIALOGUES:
              |Alok, Bhavesh aur Yadnesh ab chain ki saans lete hain. Unki dosti is bade khatre se guzarne ke baad aur bhi zyada mazboot ho chuki thi.
              |
              |Alok: "Chalo dosto, ab darna band aur apni padhai par dhyan dete hain!"
              |===================================================""".stripMargin,

          "Chapter 20: Part 2 Grand Finale & Final Twist" ->
            """==================================================
              |WRITTEN BY BIXUU
              |==================================================
              |CHAPTER 20 STORY & DIALOGUES (PART 2 FINALE):
              |Sab kuch normal ho chuka tha, par jab raat ko sote waqt Alok apne room ki window band karta hai, toh use bahar andhere mein ek aur nayi parchhai khadi dikhti hai jo smile kar rahi hoti hai...
              |
              |THE END - HORROR STORY PART 2 WRITTEN & ADAPTED BY BIXUU.
              |==================================================
              |
              |ANNOUNCEMENT:
              |ALOK, BHAVESH AND YADNESH CONQUERED THE CURSE OF ROOM 404! 
              |Stay tuned for Horror Story Part 3!
              |===================================================""".stripMargin
        )

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

        // Header Theme Color (Dark Crimson & Black)
        val headerLabel = new JLabel("  HORROR STORY PART 2: RETURN OF THE CURSE (Alok, Bhavesh & Yadnesh)  ", SwingConstants.CENTER)
        headerLabel.setFont(new Font("Arial", Font.BOLD, 14))
        headerLabel.setOpaque(true)
        headerLabel.setBackground(new Color(40, 10, 10))
        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, 10, 15))
        storyArea.setForeground(new Color(255, 220, 220))
        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)
      }
    })
  }
}

HorrorStoryPart2App.main(Array())