Esempio n. 1
0
        private void ExecuteCommands()
        {
            while (!dm.IsGameOver())
            {
                var inputLine = Console.ReadLine();

                if (string.IsNullOrEmpty(inputLine))
                {
                    break;
                }

                try
                {
                    Execute(inputLine);
                }
                catch (ArgumentException am)
                {
                    output.AppendLine($"Parameter Error: {am.Message}");
                }
                catch (InvalidOperationException im)
                {
                    output.AppendLine($"Invalid Operation: {im.Message}");
                }
            }
        }
Esempio n. 2
0
        public void Run()
        {
            while (true)
            {
                try
                {
                    string inputLine = Console.ReadLine();
                    if (string.IsNullOrEmpty(inputLine))
                    {
                        Console.WriteLine("Final stats:");
                        Console.Write(dg.GetStats());
                        break;
                    }
                    string[] input   = inputLine.Split(' ', StringSplitOptions.RemoveEmptyEntries);
                    string   command = input[0].ToLower();

                    input = input.Skip(1).ToArray();
                    switch (command)
                    {
                    case "joinparty": Console.WriteLine(dg.JoinParty(input)); break;

                    case "additemtopool": Console.WriteLine(dg.AddItemToPool(input)); break;

                    case "pickupitem": Console.WriteLine(dg.PickUpItem(input)); break;

                    case "useitem": Console.WriteLine(dg.UseItem(input)); break;

                    case "useitemon": Console.WriteLine(dg.UseItemOn(input)); break;

                    case "givecharacteritem": Console.WriteLine(dg.GiveCharacterItem(input)); break;

                    case "getstats": Console.WriteLine(dg.GetStats()); break;

                    case "heal": Console.WriteLine(dg.Heal(input)); break;

                    case "attack": Console.WriteLine(dg.Attack(input)); break;

                    case "endturn": Console.WriteLine(dg.EndTurn(input)); break;
                    }
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine($"Parameter Error: {ae.Message}");
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine($"Invalid Operation: {ioe.Message}");
                }
                if (dg.IsGameOver())
                {
                    Console.WriteLine("Final stats:");
                    Console.Write(dg.GetStats());
                    break;
                }
            }
        }
Esempio n. 3
0
        public void Run()
        {
            StringBuilder result = new StringBuilder();

            while (true)
            {
                try
                {
                    if (dungeonMaster.IsGameOver())
                    {
                        break;
                    }

                    string command = Console.ReadLine();

                    if (string.IsNullOrEmpty(command))
                    {
                        break;
                    }

                    string[] args   = command.Split(' ');
                    string   output = ParseCommand(args);
                    result.AppendLine(output);
                }
                catch (ArgumentException ex)
                {
                    result.AppendLine("Parameter Error: " + ex.Message);
                }
                catch (InvalidOperationException ex)
                {
                    result.AppendLine("Invalid Operation: " + ex.Message);
                }
            }

            result.AppendLine("Final stats:");
            result.AppendLine(dungeonMaster.GetStats());

            Console.WriteLine(result.ToString().TrimEnd());
        }
Esempio n. 4
0
        public void MoveCommand(string inputLine, DungeonMaster dm)
        {
            string[] input   = inputLine.Split();
            string   command = input[0];

            string[] args = new string[input.Length - 1];
            for (int i = 0; i < args.Length; i++)
            {
                args[i] = input[i + 1];
            }

            switch (command)
            {
            case "JoinParty":
                Console.WriteLine(dm.JoinParty(args)); break;

            case "AddItemToPool":
                Console.WriteLine(dm.AddItemToPool(args)); break;

            case "PickUpItem":
                Console.WriteLine(dm.PickUpItem(args)); break;

            case "UseItem":
                Console.WriteLine(dm.UseItem(args)); break;

            case "UseItemOn":
                Console.WriteLine(dm.UseItemOn(args)); break;

            case "GiveCharacterItem":
                Console.WriteLine(dm.GiveCharacterItem(args)); break;

            case "GetStats":
                Console.WriteLine(dm.GetStats()); break;

            case "Attack":
                Console.WriteLine(dm.Attack(args)); break;

            case "Heal":
                Console.WriteLine(dm.Heal(args)); break;

            case "EndTurn":
                Console.WriteLine(dm.EndTurn(args));
                this.gameOver = dm.IsGameOver(); break;

            default: break;
            }
        }
Esempio n. 5
0
        public void Run()
        {
            string command = Console.ReadLine();

            while (!master.IsGameOver() && !string.IsNullOrWhiteSpace(command))
            {
                string[] args = command.Split();
                string   type = args[0];
                string[] arr  = args.Skip(1).ToArray();

                switch (type)
                {
                case "JoinParty":
                    Console.WriteLine(master.JoinParty(arr));
                    break;
                }
            }
        }
Esempio n. 6
0
        public void Run()
        {
            while (cm.IsGameOver() == false)
            {
                string[] line = Console.ReadLine().Split().ToArray();

                try
                {
                    Console.WriteLine(ProcesCommand(line));
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine($"ArgumentException: {ex.Message}");
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine($"InvalidOperationException: {ex.Message}");
                }
            }
            Console.WriteLine(cm.GetStats());
        }
Esempio n. 7
0
        public void Run()
        {
            string command    = Console.ReadLine();
            bool   isGameOver = false;

            while (!string.IsNullOrEmpty(command))
            {
                string[] args = command.Split();

                try
                {
                    switch (args[0])
                    {
                    case "JoinParty":
                        Console.WriteLine(master.JoinParty(args.Skip(1).ToArray()));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(master.AddItemToPool(args.Skip(1).ToArray()));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(master.PickUpItem(args.Skip(1).ToArray()));
                        break;

                    case "UseItem":
                        Console.WriteLine(master.UseItem(args.Skip(1).ToArray()));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(master.UseItemOn(args.Skip(1).ToArray()));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(master.GiveCharacterItem(args.Skip(1).ToArray()));
                        break;

                    case "GetStats":
                        Console.WriteLine(master.GetStats());
                        break;

                    case "Attack":
                        Console.WriteLine(master.Attack(args.Skip(1).ToArray()));
                        break;

                    case "Heal":
                        Console.WriteLine(master.Heal(args.Skip(1).ToArray()));
                        break;

                    case "EndTurn":
                        Console.WriteLine(master.EndTurn(args.Skip(1).ToArray()));
                        break;

                    case "IsGameOver":
                        isGameOver = master.IsGameOver();
                        break;
                    }
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine($"Parameter Error: {ex.Message}");
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine($"Invalid Operation: {ex.Message}");
                }
                if (master.IsGameOver() || isGameOver)
                {
                    break;
                }
                command = Console.ReadLine();
            }
            Console.WriteLine("Final stats:");
            Console.WriteLine(master.GetStats());
        }
Esempio n. 8
0
        private void DistrubuteCommand(string[] inputParams)
        {
            var result  = "";
            var command = inputParams[0];

            inputParams = inputParams.Skip(1).ToArray();
            bool invalidCommand = false;

            try
            {
                switch (command)
                {
                case "JoinParty":
                    result = dungeonMaster.JoinParty(inputParams);
                    break;

                case "AddItemToPool":
                    result = dungeonMaster.AddItemToPool(inputParams);
                    break;

                case "PickUpItem":
                    result = dungeonMaster.PickUpItem(inputParams);
                    break;

                case "UseItem":
                    result = dungeonMaster.UseItem(inputParams);
                    break;

                case "UseItemOn":
                    result = dungeonMaster.UseItemOn(inputParams);
                    break;

                case "GiveCharacterItem":
                    result = dungeonMaster.GiveCharacterItem(inputParams);
                    break;

                case "GetStats":
                    result = dungeonMaster.GetStats();
                    break;

                case "Attack":
                    result = dungeonMaster.Attack(inputParams);
                    break;

                case "Heal":
                    result = dungeonMaster.Heal(inputParams);
                    break;

                case "EndTurn":
                    result = dungeonMaster.EndTurn(inputParams);
                    break;

                case "IsGameOver":
                    result = $"Final stats:" + Environment.NewLine + $"{dungeonMaster.GetStats()}";
                    isRun  = dungeonMaster.IsGameOver();
                    break;

                default:
                    invalidCommand = true;
                    break;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException)
                {
                    result = $"Parameter Error: {e.Message}";
                }
                else
                {
                    result = $"Invalid Operation: {e.Message}";
                }
            }
            if (string.IsNullOrWhiteSpace(command))
            {
                Console.WriteLine("Final stats:");
                Console.WriteLine($"{dungeonMaster.GetStats()}");
                isRun = false;
            }
            else if (!invalidCommand)
            {
                Console.WriteLine(result.TrimEnd());
                invalidCommand = false;
            }
            if (dungeonMaster.LastSurvivorsRounds > 1)
            {
                isRun = false;
                Console.WriteLine("Final stats:");
                Console.WriteLine($"{dungeonMaster.GetStats()}");
            }
        }
Esempio n. 9
0
        public void Run()
        {
            string input = Console.ReadLine();

            while (!string.IsNullOrEmpty(input))
            {
                string[] inputArgs = input.Split();

                string   command = inputArgs[0];
                string[] args    = inputArgs.Skip(1).ToArray();

                string result = string.Empty;

                try
                {
                    switch (command)
                    {
                    case "JoinParty":
                        result = dungeonMaster.JoinParty(args);
                        break;

                    case "AddItemToPool":
                        result = dungeonMaster.AddItemToPool(args);
                        break;

                    case "PickUpItem":
                        result = dungeonMaster.PickUpItem(args);
                        break;

                    case "UseItem":
                        result = dungeonMaster.UseItem(args);
                        break;

                    case "UseItemOn":
                        result = dungeonMaster.UseItemOn(args);
                        break;

                    case "GiveCharacterItem":
                        result = dungeonMaster.GiveCharacterItem(args);
                        break;

                    case "GetStats":
                        result = dungeonMaster.GetStats();
                        break;

                    case "Attack":
                        result = dungeonMaster.Attack(args);
                        break;

                    case "Heal":
                        result = dungeonMaster.Heal(args);
                        break;

                    case "EndTurn":
                        result = dungeonMaster.EndTurn(args);
                        break;

                    case "IsGameOver":
                        dungeonMaster.IsGameOver();
                        break;

                    default:
                        break;
                    }

                    Console.WriteLine(result);
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine("Invalid Operation: " + ex.Message);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine("Parameter Error: " + ex.Message);
                }

                if (dungeonMaster.IsGameOver())
                {
                    break;
                }
                input = Console.ReadLine();
            }

            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
Esempio n. 10
0
        public void Run()
        {
            string command = Console.ReadLine();

            while (true)
            {
                if (string.IsNullOrEmpty(command))
                {
                    break;
                }

                string[] commandArgs = command.Split(' ');
                string   commandName = commandArgs[0];
                string[] args        = commandArgs.Skip(1).ToArray();
                string   output      = string.Empty;

                try
                {
                    switch (commandName)
                    {
                    case "JoinParty":
                        output = this.dungeonMaster.JoinParty(args);
                        break;

                    case "AddItemToPool":
                        output = this.dungeonMaster.AddItemToPool(args);
                        break;

                    case "PickUpItem":
                        output = this.dungeonMaster.PickUpItem(args);
                        break;

                    case "UseItem":
                        output = this.dungeonMaster.UseItem(args);
                        break;

                    case "GiveCharacterItem":
                        output = this.dungeonMaster.GiveCharacterItem(args);
                        break;

                    case "UseItemOn":
                        output = this.dungeonMaster.UseItemOn(args);
                        break;

                    case "GetStats":
                        output = this.dungeonMaster.GetStats();
                        break;

                    case "Attack":
                        output = this.dungeonMaster.Attack(args);
                        break;

                    case "Heal":
                        output = this.dungeonMaster.Heal(args);
                        break;

                    case "EndTurn":
                        output = this.dungeonMaster.EndTurn(args);
                        break;
                    }

                    if (output != string.Empty)
                    {
                        Console.WriteLine(output);
                    }
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine("Parameter Error: " + ae.Message);
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine("Invalid Operation: " + ioe.Message);
                }

                if (dungeonMaster.IsGameOver() == true)
                {
                    break;
                }
                ;
                command = Console.ReadLine();
            }

            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
Esempio n. 11
0
        public void RunEngine()
        {
            string input = Console.ReadLine();

            while (!string.IsNullOrEmpty(input))
            {
                string[] args    = input.Split().ToArray();
                string   command = args[0];
                string[] tokkens = args.Skip(1).ToArray();
                string   result  = string.Empty;

                try
                {
                    if (command == "JoinParty")
                    {
                        result = this.DungeonMaster.JoinParty(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "AddItemToPool")
                    {
                        result = this.DungeonMaster.AddItemToPool(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "PickUpItem")
                    {
                        result = this.DungeonMaster.PickUpItem(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "UseItem")
                    {
                        result = this.DungeonMaster.UseItem(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "UseItemOn")
                    {
                        result = this.DungeonMaster.UseItemOn(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "GiveCharacterItem")
                    {
                        result = this.DungeonMaster.GiveCharacterItem(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "GetStats")
                    {
                        result = this.DungeonMaster.GetStats();
                        Console.WriteLine(result);
                    }
                    else if (command == "Attack")
                    {
                        result = this.DungeonMaster.Attack(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "Heal")
                    {
                        result = this.DungeonMaster.Heal(tokkens);
                        Console.WriteLine(result);
                    }
                    else if (command == "EndTurn")
                    {
                        result = this.DungeonMaster.EndTurn();
                        Console.WriteLine(result);
                    }
                    else if (command == "IsGameOver")
                    {
                        this.DungeonMaster.IsGameOver();
                    }
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine("Invalid Operation: " + ex.Message);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine("Parameter Error: " + ex.Message);
                }

                if (DungeonMaster.IsGameOver())
                {
                    break;
                }

                input = Console.ReadLine();
            }

            Console.WriteLine("Final stats: ");
            string finalStat = DungeonMaster.GetStats();

            Console.WriteLine(finalStat);
        }
        public void Run()
        {
            DungeonMaster dungeonMaster = new DungeonMaster();

            string command;

            while (this.IsRunning && !dungeonMaster.IsGameOver())
            {
                try
                {
                    command = Console.ReadLine();

                    if (string.IsNullOrEmpty(command))
                    {
                        this.IsRunning = false;
                        continue;
                    }
                    string   commandArg    = command.Split()[0];
                    string[] remainingArgs = command.Split().Skip(1).ToArray();

                    string result;
                    switch (commandArg)
                    {
                    case "JoinParty":
                        result = dungeonMaster.JoinParty(remainingArgs);
                        break;

                    case "AddItemToPool":
                        result = dungeonMaster.AddItemToPool(remainingArgs);
                        break;

                    case "PickUpItem":
                        result = dungeonMaster.PickUpItem(remainingArgs);
                        break;

                    case "UseItem":
                        result = dungeonMaster.UseItem(remainingArgs);
                        break;

                    case "UseItemOn":
                        result = dungeonMaster.UseItemOn(remainingArgs);
                        break;

                    case "GiveCharacterItem":
                        result = dungeonMaster.GiveCharacterItem(remainingArgs);
                        break;

                    case "GetStats":
                        result = dungeonMaster.GetStats();
                        break;

                    case "Attack":
                        result = dungeonMaster.Attack(remainingArgs);
                        break;

                    case "Heal":
                        result = dungeonMaster.Heal(remainingArgs);
                        break;

                    case "EndTurn":
                        result = dungeonMaster.EndTurn(remainingArgs);
                        break;

                    case "IsGameOver":
                        result = dungeonMaster.IsGameOver().ToString();
                        break;

                    default:
                        result = "";
                        break;
                    }

                    Console.WriteLine(result);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine($"Parameter Error: {ex.Message}");
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine($"Invalid Operation: {ex.Message}");
                }
            }

            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
Esempio n. 13
0
        public void ExecuteCommand(string[] inputArgs)
        {
            var command = inputArgs[0];

            var cmdArgs = inputArgs.Skip(1).ToArray();

            try
            {
                switch (command)
                {
                case "JoinParty":
                    Console.WriteLine(dungeonMaster.JoinParty(cmdArgs));
                    break;

                case "AddItemToPool":
                    Console.WriteLine(dungeonMaster.AddItemToPool(cmdArgs));
                    break;

                case "PickUpItem":
                    Console.WriteLine(dungeonMaster.PickUpItem(cmdArgs));
                    break;

                case "UseItem":
                    Console.WriteLine(dungeonMaster.UseItem(cmdArgs));
                    break;

                case "UseItemOn":
                    Console.WriteLine(dungeonMaster.UseItemOn(cmdArgs));
                    break;

                case "GiveCharacterItem":
                    Console.WriteLine(dungeonMaster.GiveCharacterItem(cmdArgs));
                    break;

                case "GetStats":
                    Console.WriteLine(dungeonMaster.GetStats());
                    break;

                case "Attack":
                    Console.WriteLine(dungeonMaster.Attack(cmdArgs));
                    break;

                case "Heal":
                    Console.WriteLine(dungeonMaster.Heal(cmdArgs));
                    break;

                case "EndTurn":
                    Console.WriteLine(dungeonMaster.EndTurn(cmdArgs));
                    break;

                case "IsGameOver":
                    this.GameIsOver = dungeonMaster.IsGameOver();
                    break;
                }
            }
            catch (ArgumentException ae)
            {
                Console.WriteLine($"Parameter Error: {ae.Message}");
            }
            catch (InvalidOperationException io)
            {
                Console.WriteLine($"Invalid Operation: {io.Message}");
            }
        }
Esempio n. 14
0
        public void Run()
        {
            DungeonMaster dm = new DungeonMaster();
            string        input;

            while (!string.IsNullOrEmpty((input = Console.ReadLine())))
            {
                StringBuilder result  = new StringBuilder();
                string[]      args    = input.Split();
                string        command = args[0];
                args = args.Skip(1).ToArray();
                bool gameOver = false;

                try
                {
                    switch (command)
                    {
                    case "JoinParty":
                        Console.WriteLine(dm.JoinParty(args));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(dm.AddItemToPool(args));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(dm.PickUpItem(args));
                        break;

                    case "UseItem":
                        Console.WriteLine(dm.UseItem(args));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(dm.UseItemOn(args));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(dm.GiveCharacterItem(args));
                        break;

                    case "GetStats":
                        Console.WriteLine(dm.GetStats());
                        break;

                    case "Attack":
                        Console.WriteLine(dm.Attack(args));
                        break;

                    case "Heal":
                        Console.WriteLine(dm.Heal(args));
                        break;

                    case "EndTurn":
                        Console.WriteLine(dm.EndTurn(args));
                        if (dm.IsGameOver())
                        {
                            gameOver = true;
                        }
                        break;

                    case "IsGameOver":
                        Console.WriteLine(dm.IsGameOver());
                        break;
                    }
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine($"Parameter Error: {ae.Message}");
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine($"Invalid Operation: {ioe.Message}");
                }

                if (gameOver)
                {
                    break;
                }
            }

            Console.WriteLine(dm.GameOver());
        }
        public void Run()
        {
            string[] args = Console.ReadLine()
                            .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                            .ToArray();

            DungeonMaster dungeonMaster = new DungeonMaster();

            while (!string.IsNullOrEmpty(args[0]) || !dungeonMaster.IsGameOver())
            {
                string output = string.Empty;
                try
                {
                    switch (args[0].ToLower())
                    {
                    case "joinparty":
                        output = dungeonMaster.JoinParty(args);
                        break;

                    case "additemtopool":
                        output = dungeonMaster.AddItemToPool(args);
                        break;

                    case "pickupitem":
                        output = dungeonMaster.PickUpItem(args);
                        break;

                    case "useitem":
                        output = dungeonMaster.UseItem(args);
                        break;

                    case "useitemon":
                        output = dungeonMaster.UseItemOn(args);
                        break;

                    case "givecharacteritem":
                        output = dungeonMaster.GiveCharacterItem(args);
                        break;

                    case "getstats":
                        output = dungeonMaster.GetStats();
                        break;

                    case "attack":
                        output = dungeonMaster.Attack(args);
                        break;

                    case "heal":
                        output = dungeonMaster.Heal(args);
                        break;

                    case "endturn":
                        output = dungeonMaster.EndTurn(args);
                        break;

                    case "isgameover":
                        if (dungeonMaster.IsGameOver())
                        {
                            output = $"\nFinal stats:\n{dungeonMaster.GetStats()}";
                        }
                        break;

                    default:
                        break;
                    }
                    if (dungeonMaster.IsGameOver())
                    {
                        output += $"\nFinal stats:\n{dungeonMaster.GetStats()}";
                        Console.WriteLine(output);
                        return;
                    }
                    Console.WriteLine(output);
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine($"Parameter Error: {ae.Message}");
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine($"Invalid Operation: {ioe.Message}");
                }

                args = Console.ReadLine()
                       .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                       .ToArray();
            }
        }