Pasi qe pata pak kohe dhe furkanin e kam per merak

e krijova nje valle te pemve e te perimeve ne C#:

Kodi:
using System;

namespace Program
{
    class ValljaBotanike
    {
        protected string emri = string.Empty;
        protected int metra = 0;
        protected string kenga = string.Empty;
        protected string valle = string.Empty;
        protected string partneri = string.Empty;

        public ValljaBotanike(){}

        public ValljaBotanike(string emri, int metra, string kenga, string valle, string partneri)
        {
            this.emri = emri;
            this.metra = metra;
            this.kenga = kenga;
            this.valle = valle;
            this.partneri = partneri;
        }

        protected string riemerto(string emri)
        {
            return emri = emri.Substring(emri.Length - 1, 1) == "a" ? emri.Substring(0, emri.Length - 1) + "en" : emri + "n";
        }

        public virtual void Hudhet()
        {
            Console.WriteLine(emri + " hudhet " + metra + " metra");
        }

        public virtual void Kendon()
        {
            Console.WriteLine(emri + " kendon kengen " + kenga);
        }

        public virtual void Vallezon()
        {
            Console.WriteLine(emri + " vallezon " + valle + " me " + riemerto(partneri));
        }

    }

    class Pemet : ValljaBotanike, IHahet
    {
        public Pemet(string emri, int metra, string kenga, string valle, string partneri) 
            : base(emri, metra, kenga, valle,partneri) {}

        public void Hahet()
        {
            Console.WriteLine(this.emri + " hahet me " + riemerto(partneri));
        }
    }

    class Perimet : ValljaBotanike, IZihet 
    {
        public Perimet(string emri, int metra, string kenga, string valle, string partneri)
            : base(emri, metra, kenga, valle, partneri) { }

        public void Zihet()
        {
            Console.WriteLine(this.emri + " zihet me " + riemerto(partneri));
        }
    }

    interface IZihet { void Zihet();}

    interface IHahet { void Hahet();}

    enum Valle{Valser,Shoten,Balet,Valle,Salsa,Tango,HipHop}

    enum Kenga{TeDua,IMissYou,OMyGod,BelieveMe,TaHagshaZemren,HereIGo,SearchingMySoul}

    enum Peme{Molla,Dardha,Qershia,Rrushi,Banana,Portokalli,Ananasi,Kivi}

    enum Perime{Domate,Patate,Lakra,Speci,Spinaqi,Qepa,Hudhra}

    class Program
    {
        private static Random random = new Random();

        private static int NumerRandom(int min, int max)
        {
            return random.Next(min, max);
        }

        static void Main(string[] args)
        {
            for (int i = 0; i < 100; i++)
            {
                switch (NumerRandom(1, 3))
                {
                    case 1:
                        Pemet pem = new Pemet(((Peme)NumerRandom(1,Enum.GetNames(typeof(Peme)).Length)).ToString(),
                            NumerRandom(1, 2000), ((Kenga)NumerRandom(1, Enum.GetNames(typeof(Kenga)).Length)).ToString(),
                            ((Valle)NumerRandom(1, Enum.GetNames(typeof(Valle)).Length)).ToString(),
                            ((Perime)NumerRandom(1, Enum.GetNames(typeof(Perime)).Length)).ToString());
                        switch (NumerRandom(1,5))
                        {
                            case 1:pem.Hudhet();break;
                            case 2:pem.Kendon();break;
                            case 3:pem.Vallezon();break;
                            case 4:pem.Hahet(); break;
                        }
                        pem = null;
                        break;
                    case 2:
                        Perimet per = new Perimet(((Perime)NumerRandom(1, Enum.GetNames(typeof(Perime)).Length)).ToString(),
                            NumerRandom(1, 2000), ((Kenga)NumerRandom(1, Enum.GetNames(typeof(Kenga)).Length)).ToString(),
                            ((Valle)NumerRandom(1, Enum.GetNames(typeof(Valle)).Length)).ToString(),
                            ((Peme)NumerRandom(1, Enum.GetNames(typeof(Peme)).Length)).ToString());
                        switch (NumerRandom(1,5))
                        {
                            case 1:per.Hudhet();break;
                            case 2:per.Kendon();break;
                            case 3:per.Vallezon();break;
                            case 4:per.Zihet(); break;
                        }
                        per = null;
                        break;
                }
            }
        }
    }
}
Pamja ne konsole:

Hudhra vallezon Valle me Dardhen
Kivi hahet me Spinaqin
Dardha hahet me Specin
Ananasi hudhet 1867 metra
Qershia kendon kengen BelieveMe
Dardha hahet me Qepen
Lakra zihet me Ananasin
Speci kendon kengen BelieveMe
Kivi vallezon Balet me Specin
Hudhra kendon kengen IMissYou
Portokalli kendon kengen TaHagshaZemren
Hudhra vallezon Shoten me Dardhen
Qepa hudhet 74 metra
Rrushi hahet me Lakren
Kivi hahet me Spinaqin
Lakra kendon kengen OMyGod
Banana hahet me Pataten
Dardha hahet me Lakren
Portokalli kendon kengen BelieveMe
Ananasi hudhet 233 metra
Qershia hudhet 1973 metra
Hudhra hudhet 767 metra
Qepa vallezon Balet me Ananasin
Hudhra hudhet 1597 metra
Lakra zihet me Kivin
Hudhra vallezon Tango me Kivin
Spinaqi kendon kengen TaHagshaZemren
Lakra zihet me Bananen
Qershia hahet me Pataten
Patate zihet me Rrushin
Hudhra vallezon HipHop me Kivin
Rrushi hahet me Qepen
Qepa vallezon Valle me Ananasin
Spinaqi hudhet 301 metra
Rrushi hudhet 1270 metra
Qershia hudhet 1511 metra
Spinaqi vallezon Balet me Qershien
Portokalli hudhet 1962 metra
Dardha vallezon Valle me Spinaqin
Lakra vallezon Balet me Ananasin
Ananasi hahet me Spinaqin
Spinaqi hudhet 335 metra
Spinaqi zihet me Kivin
Portokalli hahet me Specin
Ananasi hudhet 341 metra
Lakra kendon kengen SearchingMySoul
Hudhra hudhet 603 metra
Patate kendon kengen IMissYou
Banana vallezon Shoten me Hudhren
Hudhra hudhet 1361 metra
Qershia vallezon Salsa me Spinaqin
Patate zihet me Kivin
Spinaqi vallezon Valle me Ananasin
Qepa zihet me Portokallin
Spinaqi hudhet 349 metra