-- 1. Definition der magischen Wesen


-- 2. Beschreibung der magischen Wesen


-- 3. Kämpfe


-- 4. Magisches Duell



-- Hauptfunktion für Tests
main :: IO ()
main = do
    -- Erstellen von Beispielwesen
    let dragon = Dragon "Fafnir" 50 100
    let unicorn = Unicorn "Sternwind" 40 80
    let wizard = Wizard "Dumbledore" 30 120

    -- Magische Kräfte anzeigen
    putStrLn $ "1. und 2. Definition und Beschreibung:"
    putStrLn $ describeMagicalCreature dragon
    putStrLn $ describeMagicalCreature unicorn
    putStrLn $ describeMagicalCreature wizard ++ "\n"

    -- Kräfte berechnen
    putStrLn $ "3. Kräfte:"
    putStrLn $ "Power des Drachen: " ++ show (power dragon)
    putStrLn $ "Power des Einhorns: " ++ show (power unicorn)
    putStrLn $ "Power des Zauberers: " ++ show (power wizard)
    putStrLn $ "\n"

    -- Kämpfe zwischen Wesen
    putStrLn $ "4. Magische Duelle:"
    putStrLn $ "Dragon vs. Unicorn. Gewonnen hat: " ++ show (duel dragon unicorn)
    putStrLn $ "Wizard vs. Dragon. Gewonnen hat: " ++ show (duel wizard dragon)
    putStrLn $ "Unicorn vs. Wizard. Gewonnen hat: " ++ show (duel unicorn wizard)
    putStrLn $ "Wizard vs. Wizard: " ++ show (duel wizard wizard)