예제 #1
0
        static void Main(string[] args)
        {
            Dictionary <string, Human> alliance = new Dictionary <string, Human>();
            Dictionary <string, Enemy> enemy    = new Dictionary <string, Enemy>();

            Console.WriteLine("Start a new game ?");
            string input = Console.ReadLine();

            if (input == "yes")
            {
                Wizard  w1  = new Wizard();
                Ninja   n1  = new Ninja();
                Samurai s1  = new Samurai();
                Zombie  z1  = new Zombie("z1");
                Zombie  z2  = new Zombie("z2");
                Spider  sp1 = new Spider("spider1", 2, 150);
                alliance.Add("w1", w1);
                alliance.Add("n1", n1);
                alliance.Add("s1", s1);
                enemy.Add("z1", z1);
                enemy.Add("z2", z2);
                enemy.Add("spider1", sp1);
                Console.WriteLine("Game start !\n Alliance: 1 Wizard: w1 \t 1 Ninja: n1 \t 1 Samurai: s1\n Enemy: 2 Zombies: z1,z2 \t 1 Spider spider1\nPlease input  ally");
                string ally = Console.ReadLine();
                Console.WriteLine("please input ability");
                string ability = Console.ReadLine();
                Console.WriteLine("Please input target");
                string target = Console.ReadLine();
                if (ally == "w1")  // Wizard abilities:
                {
                    if (ability == "heal")
                    {
                        if (alliance.ContainsKey(target) == true)
                        {
                            switch (target)
                            {
                            case "w1":
                                w1.Heal(w1);
                                break;

                            case "n1":
                                w1.Heal(n1);
                                break;

                            case "s1":
                                w1.Heal(s1);
                                break;
                            }
                        }
                        else
                        {
                            Console.WriteLine("This ability can only be used to ally !");
                        }
                    }
                    else if (ability == "fireball")
                    {
                        if (enemy.ContainsKey(target) == true)
                        {
                            switch (target)
                            {
                            case "z1":
                                w1.Fireball(z1);
                                break;

                            case "z2":
                                w1.Fireball(z2);
                                break;

                            case "spider1":
                                w1.Fireball(sp1);
                                break;
                            }
                        }
                        else
                        {
                            Console.WriteLine("This ability can only be used to enemy!");
                        }
                    }
                }
                else if (ally == "n1")  //Ninja abilities:
                {
                    if (ability == "steal")
                    {
                        if (enemy.ContainsKey(target) == true)
                        {
                            switch (target)
                            {
                            case "z1":
                                n1.Steal(z1);
                                break;

                            case "z2":
                                n1.Steal(z2);
                                break;

                            case "spider1":
                                n1.Steal(sp1);
                                break;
                            }
                        }
                        else
                        {
                            Console.WriteLine("This ability can only be used to enemy !");
                        }
                    }
                    else if (ability == "get_away")
                    {
                        if (target == "n1")
                        {
                            n1.Get_away();
                        }
                        else
                        {
                            Console.WriteLine("This ability can only be used to self !");
                        }
                    }
                }
                else if (ally == "s1")
                {
                    if (ability == "death_blow")
                    {
                        if (alliance.ContainsKey(target) == true)
                        {
                            switch (target)
                            {
                            case "w1":
                                s1.Death_blow(w1);
                                break;

                            case "n1":
                                s1.Death_blow(n1);
                                break;

                            case "s1":
                                s1.Death_blow(s1);
                                break;
                            }
                        }
                        else
                        {
                            Console.WriteLine("This ability can only be used to ally !");
                        }
                    }
                    else if (ability == "meditate")
                    {
                        if (target == "s1")
                        {
                            s1.Meditate();
                        }
                        else
                        {
                            Console.WriteLine("This ability can only be used to self !");
                        }
                    }
                }
            }
        }
예제 #2
0
        public void Encounter(Human[] allies, Monster[] enemies)
        {
            Random rand = new Random();

            Console.WriteLine("Random encounter! Enemies appeared!");
            int totallength = allies.Length + enemies.Length;

            object[] turns = new object[totallength];
            int      i     = 0;

            foreach (Human ally in allies)
            {
                turns[i] = ally;
                i++;
            }
            foreach (Monster enemy in enemies)
            {
                turns[i] = enemy;
                i++;
            }
            foreach (Monster enemy in enemies)
            {
                Console.WriteLine(enemy.name);
            }
            int turncount = 0;

            while (true)
            {
                Boolean allieswin  = true;
                Boolean enemieswin = true;
                foreach (Monster enemy in enemies)
                {
                    if (enemy.health > 0)
                    {
                        allieswin = false;
                    }
                }
                foreach (Human ally in allies)
                {
                    if (ally.health > 0)
                    {
                        enemieswin = false;
                    }
                }
                if (allieswin == true)
                {
                    Console.WriteLine("You win! Commence victory theme!");
                    break;
                }
                if (enemieswin == true)
                {
                    Console.WriteLine("The allied party has died. Now the sacred crystals will never be collected, and darkness will forever rule throughout the land. Game Over.");
                    break;
                }
                int myturn = turncount % totallength;
                //Console.WriteLine(myturn);
                if (turns[myturn] is Monster)
                {
                    Monster currenemy = turns[myturn] as Monster;
                    if (currenemy.health == 0)
                    {
                        turncount += 1;
                        continue;
                    }
                    Console.WriteLine("{0}'s turn!", currenemy.name);
                    int mytarget = 0;
                    while (true)
                    {
                        mytarget = rand.Next(0, allies.Length);
                        if (allies[mytarget].health > 0)
                        {
                            currenemy.Attack(allies[mytarget]);
                            break;
                        }
                    }
                    turns[myturn] = currenemy;
                }
                else if (turns[myturn] is Human)
                {
                    string  command  = "default";
                    string  target   = "default";
                    Monster mytarget = enemies[0];
                    if (turns[myturn] is Samurai)
                    {
                        Samurai turnplayer = turns[myturn] as Samurai;
                        if (turnplayer.health == 0)
                        {
                            turncount += 1;
                            continue;
                        }
                        while (true)
                        {
                            Boolean found = false;
                            Console.WriteLine("What will {0} do?", turnplayer.name);
                            command = Console.ReadLine();
                            if (command != "attack" && command != "deathblow" && command != "meditate")
                            {
                                Console.WriteLine("Invalid command.");
                                continue;
                            }
                            if (command != "meditate")
                            {
                                Console.WriteLine("Targeting what?");
                                target = Console.ReadLine();
                                foreach (Monster enemy in enemies)
                                {
                                    if (target == enemy.name)
                                    {
                                        mytarget = enemy;
                                        found    = true;
                                        break;
                                    }
                                }
                                if (found == false)
                                {
                                    Console.WriteLine("Invalid target.");
                                    continue;
                                }
                            }
                            if (command == "attack")
                            {
                                turnplayer.Attack(mytarget);
                                if (turnplayer.poisoned > 0)
                                {
                                    turnplayer.health -= 5;
                                    turnplayer.poisoned--;
                                }
                                break;
                            }
                            else if (command == "deathblow")
                            {
                                turnplayer.Death_blow(mytarget);
                                if (turnplayer.poisoned > 0)
                                {
                                    turnplayer.health -= 5;
                                    turnplayer.poisoned--;
                                }
                                break;
                            }
                            else if (command == "meditate")
                            {
                                turnplayer.Meditate();
                                if (turnplayer.poisoned > 0)
                                {
                                    turnplayer.health -= 5;
                                    turnplayer.poisoned--;
                                }
                                break;
                            }
                        }
                    }
                    else if (turns[myturn] is Wizard)
                    {
                        Wizard turnplayer = turns[myturn] as Wizard;
                        if (turnplayer.health == 0)
                        {
                            turncount += 1;
                            continue;
                        }
                        while (true)
                        {
                            Boolean found = false;
                            Console.WriteLine("What will {0} do?", turnplayer.name);
                            command = Console.ReadLine();
                            if (command != "attack" && command != "fireball" && command != "heal")
                            {
                                Console.WriteLine("Invalid command.");
                                continue;
                            }
                            if (command != "heal")
                            {
                                Console.WriteLine("Targeting what?");
                                target = Console.ReadLine();
                                foreach (Monster enemy in enemies)
                                {
                                    if (target == enemy.name)
                                    {
                                        mytarget = enemy;
                                        found    = true;
                                        break;
                                    }
                                }
                                if (found == false)
                                {
                                    Console.WriteLine("Invalid target.");
                                    continue;
                                }
                            }


                            if (command == "attack")
                            {
                                turnplayer.Attack(mytarget);
                                break;
                            }
                            else if (command == "fireball")
                            {
                                turnplayer.Fireball(mytarget);
                                break;
                            }
                            else if (command == "heal")
                            {
                                turnplayer.Heal();
                                break;
                            }
                        }
                    }
                    else if (turns[myturn] is Ninja)
                    {
                        Ninja turnplayer = turns[myturn] as Ninja;
                        if (turnplayer.health == 0)
                        {
                            turncount += 1;
                            continue;
                        }
                        while (true)
                        {
                            Boolean found = false;
                            Console.WriteLine("What will {0} do?", turnplayer.name);
                            command = Console.ReadLine();
                            if (command != "attack" && command != "steal" && command != "getaway")
                            {
                                Console.WriteLine("Invalid command.");
                                continue;
                            }
                            if (command != "getaway")
                            {
                                Console.WriteLine("Targeting what?");
                                target = Console.ReadLine();
                            }
                            foreach (Monster enemy in enemies)
                            {
                                if (target == enemy.name)
                                {
                                    mytarget = enemy;
                                    found    = true;
                                    break;
                                }
                            }
                            if (found == false)
                            {
                                Console.WriteLine("Invalid target.");
                                continue;
                            }
                            if (command == "attack")
                            {
                                turnplayer.Attack(mytarget);
                                break;
                            }
                            else if (command == "steal")
                            {
                                turnplayer.Steal(mytarget);
                                break;
                            }
                            else if (command == "getaway")
                            {
                                turnplayer.Get_away();
                                Console.WriteLine("{} couldn't get away!", turnplayer.name);
                                break;
                            }
                        }
                    }
                    else
                    {
                        Human turnplayer = turns[myturn] as Human;
                        if (turnplayer.health == 0)
                        {
                            turncount += 1;
                            continue;
                        }
                        while (true)
                        {
                            Boolean found = false;
                            Console.WriteLine("What will {0} do?", turnplayer.name);
                            command = Console.ReadLine();
                            if (command != "attack")
                            {
                                Console.WriteLine("Invalid command.");
                                continue;
                            }
                            foreach (Monster enemy in enemies)
                            {
                                if (target == enemy.name)
                                {
                                    mytarget = enemy;
                                    found    = true;
                                    break;
                                }
                            }
                            if (found == false)
                            {
                                Console.WriteLine("Invalid target.");
                                continue;
                            }
                            if (command == "attack")
                            {
                                turnplayer.Attack(mytarget);
                                break;
                            }
                        }
                    }
                }
                turncount += 1;
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            // Create new players
            Human me = new Human("Maki");

            me.Health = 200;
            Human   Lola  = new Human("Lola");
            Wizard  Wanda = new Wizard("Wanda");
            Ninja   Nick  = new Ninja("Nick");
            Samurai Sam   = new Samurai("Sam");
            Samurai Ducky = new Samurai("Ducky");

            // Show stats of players at beginning of game
            System.Console.WriteLine("\n=====Before Attacking======");
            System.Console.WriteLine("\n---------Player 1----------");
            me.ShowStatus();
            System.Console.WriteLine("\n---------Player 2----------");
            Lola.ShowStatus();
            System.Console.WriteLine("\n---------Player 3----------");
            Wanda.ShowStatus();
            System.Console.WriteLine("\n---------Player 4----------");
            Nick.ShowStatus();
            System.Console.WriteLine("\n---------Player 5----------");
            Sam.ShowStatus();

            // Attack round
            System.Console.WriteLine("\n======While Attacking======");
            Wanda.Fireball(me);
            System.Console.WriteLine("\n1. Wanda fireballs me.");
            me.Attack(Lola);
            System.Console.WriteLine("\n2. I attack Lola.");
            Lola.Attack(Wanda);
            System.Console.WriteLine("\n3. Lola attacks Wanda.");
            Sam.Death_Blow(Wanda);
            System.Console.WriteLine("\n4. Sam death blows Wanda. (Suck it Wanda!)");
            Nick.Steal(Sam);
            System.Console.WriteLine("\n5. Nick steals from Sam.");

            // Show stats of players after attacking
            System.Console.WriteLine("\n======After Attacking======");
            System.Console.WriteLine("\n---------Player 1----------");
            me.ShowStatus();
            System.Console.WriteLine("\n---------Player 2----------");
            Lola.ShowStatus();
            System.Console.WriteLine("\n---------Player 3----------");
            Wanda.ShowStatus();
            System.Console.WriteLine("\n---------Player 4----------");
            Nick.ShowStatus();
            System.Console.WriteLine("\n---------Player 5----------");
            Sam.ShowStatus();

            // Heal round
            System.Console.WriteLine("\n=======While Healing=======");
            Wanda.Heal();
            System.Console.WriteLine("\n1. Wanda uses heal on herself.");
            Sam.Meditate();
            System.Console.WriteLine("\n2. Sam uses meditate on himself.");
            System.Console.WriteLine("\n=======After Healing=======");
            System.Console.WriteLine("\n---------Player 3----------");
            Wanda.ShowStatus();
            System.Console.WriteLine("\n---------Player 5----------");
            Sam.ShowStatus();
            System.Console.WriteLine("\n");
            Samurai.How_Many();
        }