Exemple #1
0
        private static string ParseCommand(Command command, string[] arguments)
        {
            switch (command)
            {
            case Command.JoinParty:
                return(master.JoinParty(arguments));

            case Command.AddItemToPool:
                return(master.AddItemToPool(arguments));

            case Command.PickUpItem:
                return(master.PickUpItem(arguments));

            case Command.UseItem:
                return(master.UseItem(arguments));

            case Command.UseItemOn:
                return(master.UseItemOn(arguments));

            case Command.GiveCharacterItem:
                return(master.GiveCharacterItem(arguments));

            case Command.GetStats:
                return(master.GetStats());

            case Command.Attack:
                return(master.Attack(arguments));

            case Command.Heal:
                return(master.Heal(arguments));

            case Command.EndTurn:
                return(master.EndTurn(arguments));

            case Command.IsGameOver:
                master.IsGameOver();
                return("");

            default:
                return("");
            }
        }
Exemple #2
0
        public static void Main(string[] args)
        {
            var dungeonMaster = new DungeonMaster();

            while (dungeonMaster.IsGameOver() == false)
            {
                var input   = Console.ReadLine();
                var tokens  = input.Split(' ', StringSplitOptions.RemoveEmptyEntries).ToArray();
                var command = tokens[0];

                if (command == "JoinParty")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.JoinParty(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
                else if (command == "AddItemToPool")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.AddItemToPool(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
                else if (command == "PickUpItem")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.PickUpItem(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
                else if (command == "UseItem")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.UseItem(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                else if (command == "UseItemOn")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.UseItemOn(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                else if (command == "GiveCharacterItem")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.GiveCharacterItem(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                else if (command == "GetStats")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.GetStats());
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                else if (command == "Attack")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.Attack(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }


                else if (command == "Heal")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.Heal(tokens.Skip(1).ToArray()));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                else if (command == "EndTurn")
                {
                    try
                    {
                        Console.WriteLine(dungeonMaster.EndTurn());
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
            }

            Console.WriteLine($"Final stats:");
            try
            {
                Console.WriteLine(dungeonMaster.GetStats());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var master = new DungeonMaster();

            var input = Console.ReadLine();

            while (!String.IsNullOrEmpty(input))
            {
                try
                {
                    var arguments = input.Split(" ", StringSplitOptions.RemoveEmptyEntries);
                    var prefix    = arguments[0];
                    var info      = arguments.Skip(1).ToArray();
                    switch (prefix)
                    {
                    case "JoinParty":
                        Console.WriteLine(master.JoinParty(info));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(master.AddItemToPool(info));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(master.PickUpItem(info));
                        break;

                    case "UseItem":
                        Console.WriteLine(master.UseItem(info));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(master.UseItemOn(info));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(master.GiveCharacterItem(info));
                        break;

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

                    case "Attack":
                        Console.WriteLine(master.Attack(info));
                        break;

                    case "Heal":
                        Console.WriteLine(master.Heal(info));
                        break;

                    case "EndTurn":
                        Console.WriteLine(master.EndTurn(info));
                        break;

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

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

                input = Console.ReadLine();
            }

            Console.WriteLine($"Final stats:");
            Console.WriteLine(master.GetStats());
        }
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            DungeonMaster game = new DungeonMaster();

            while (true)
            {
                var input = Console.ReadLine();

                if (string.IsNullOrEmpty(input))
                {
                    GameStats(game);
                    GameOver();
                }

                var commands = input.Split(" ", StringSplitOptions.RemoveEmptyEntries);

                var command = commands[0];
                var tokens  = commands.Skip(1).ToArray();

                try
                {
                    switch (command)
                    {
                    case "JoinParty":
                        Print(game.JoinParty(tokens));
                        break;

                    case "AddItemToPool":
                        Print(game.AddItemToPool(tokens));
                        break;

                    case "PickUpItem":
                        Print(game.PickUpItem(tokens));
                        break;

                    case "UseItem":
                        Print(game.UseItem(tokens));
                        break;

                    case "UseItemOn":
                        Print(game.UseItemOn(tokens));
                        break;

                    case "GiveCharacterItem":
                        Print(game.GiveCharacterItem(tokens));
                        break;

                    case "GetStats":
                        Print(game.GetStats());
                        break;

                    case "Attack":
                        Print(game.Attack(tokens));
                        break;

                    case "Heal":
                        Print(game.Heal(tokens));
                        break;

                    case "EndTurn":
                        Print(game.EndTurn(tokens));
                        break;

                    case "IsGameOver":
                    {
                        if (game.IsGameOver())
                        {
                            GameStats(game);
                            GameOver();
                        }
                    }
                    break;
                    }
                }
                catch (ArgumentException e)
                {
                    Print($"Parameter Error: {e.Message}");
                }
                catch (InvalidOperationException e)
                {
                    Print($"Invalid Operation: {e.Message}");
                }
            }
        }
Exemple #5
0
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            DungeonMaster dungeonMaster = new DungeonMaster();

            while (dungeonMaster.IsGameOver() == false)
            {
                string inputString = Console.ReadLine();
                if (string.IsNullOrWhiteSpace(inputString))
                {
                    break;
                }
                var input = inputString.Split(' ');

                switch (input[0])
                {
                case "JoinParty":
                    try
                    {
                        Console.WriteLine(dungeonMaster.JoinParty(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                        Console.WriteLine(exception.Message);
                    }
                    break;

                case "AddItemToPool":
                    try
                    {
                        Console.WriteLine(dungeonMaster.AddItemToPool(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "PickUpItem":
                    try
                    {
                        Console.WriteLine(dungeonMaster.PickUpItem(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "UseItem":
                    try
                    {
                        Console.WriteLine(dungeonMaster.UseItem(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "UseItemOn":
                    try
                    {
                        Console.WriteLine(dungeonMaster.UseItemOn(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "GiveCharacterItem":
                    try
                    {
                        Console.WriteLine(dungeonMaster.GiveCharacterItem(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "GetStats":
                    try
                    {
                        Console.WriteLine(dungeonMaster.GetStats());
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "Attack":
                    try
                    {
                        Console.WriteLine(dungeonMaster.Attack(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "Heal":
                    try
                    {
                        Console.WriteLine(dungeonMaster.Heal(input.Skip(1).ToArray()));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "EndTurn":
                    try
                    {
                        Console.WriteLine(dungeonMaster.EndTurn(input));
                    }
                    catch (Exception exception)
                    {
                        HandleException(exception);
                    }
                    break;

                case "IsGameOver":
                    break;
                }
            }
            Console.WriteLine($"Final stats:\r\n{dungeonMaster.GetStats()}");
        }
Exemple #6
0
        public static void Main(string[] args)
        {
            var           input         = Console.ReadLine();
            DungeonMaster dungeonMaster = new DungeonMaster();

            while (!string.IsNullOrEmpty(input))
            {
                var separaedInput = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                var command       = separaedInput[0];
                var arguments     = separaedInput.Skip(1).ToArray();

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

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

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

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

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

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

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

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

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

                    case "EndTurn":
                        Console.WriteLine(dungeonMaster.EndTurn());
                        break;
                    }
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine($"Parameter Error: {ae.Message}");
                }
                catch (InvalidOperationException oe)
                {
                    Console.WriteLine($"Invalid Operation: {oe.Message}");
                }

                input = Console.ReadLine();
            }
            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
Exemple #7
0
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            var dungeonMaster = new DungeonMaster();

            var input = "";

            while (!string.IsNullOrEmpty(input = Console.ReadLine()) && !dungeonMaster.IsGameOver())
            {
                try
                {
                    var command = input.Split()[0];

                    var details = input.Split().Skip(1).ToArray();

                    var output = "";

                    if (command == "JoinParty")
                    {
                        output = dungeonMaster.JoinParty(details);
                    }
                    else if (command == "AddItemToPool")
                    {
                        output = dungeonMaster.AddItemToPool(details);
                    }
                    else if (command == "PickUpItem")
                    {
                        output = dungeonMaster.PickUpItem(details);
                    }
                    else if (command == "UseItem")
                    {
                        output = dungeonMaster.UseItem(details);
                    }
                    else if (command == "UseItemOn")
                    {
                        output = dungeonMaster.UseItemOn(details);
                    }

                    else if (command == "GiveCharacterItem")
                    {
                        output = dungeonMaster.GiveCharacterItem(details);
                    }
                    else if (command == "GetStats")
                    {
                        output = dungeonMaster.GetStats();
                    }
                    else if (command == "Attack")
                    {
                        output = dungeonMaster.Attack(details);
                    }
                    else if (command == "Heal")
                    {
                        output = dungeonMaster.Heal(details);
                    }
                    else if (command == "EndTurn")
                    {
                        output = dungeonMaster.EndTurn(details);
                    }
                    else if (command == "IsGameOver")
                    {
                        output = dungeonMaster.IsGameOver().ToString();
                    }
                    if (!string.IsNullOrEmpty(output))
                    {
                        Console.WriteLine(output);
                    }
                }
                catch (Exception ex)
                {
                    if (ex is ArgumentException)
                    {
                        Console.WriteLine($"Parameter Error: {ex.Message}");
                    }
                    else
                    {
                        Console.WriteLine($"Invalid Operation: {ex.Message}");
                    }
                }
            }

            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
        public void Run()
        {
            while (true)
            {
                string input = Console.ReadLine();

                if (string.IsNullOrEmpty(input) || dungeonMaster.IsGameOver())
                {
                    Console.WriteLine("Final stats:");
                    Console.WriteLine(dungeonMaster.GetStats());
                    break;
                }

                var inputArgs = input.Split();

                var commandName = inputArgs[0];
                var commandArgs = inputArgs.Skip(1).ToArray();

                try
                {
                    switch (commandName)
                    {
                    case "JoinParty":
                        Console.WriteLine(dungeonMaster.JoinParty(commandArgs));
                        break;

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

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

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

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

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

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

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

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

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

                    case "IsGameOver":
                        Console.WriteLine(dungeonMaster.IsGameOver());
                        break;
                    }
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine($"Parameter Error: {e.Message}");
                }
                catch (InvalidOperationException e)
                {
                    Console.WriteLine($"Invalid Operation: {e.Message}");
                }
            }
        }
Exemple #9
0
        public void Run()
        {
            DungeonMaster dm       = new DungeonMaster();
            bool          gameOver = false;

            while (true)
            {
                string input = Console.ReadLine();

                //if (string.IsNullOrEmpty(input))
                //{
                //    try set gameOver = true
                //    gameOver = true;
                //}

                if (string.IsNullOrEmpty(input))
                {
                    Console.Write(dm.GetStats());
                    return;
                }

                string[] command = input.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();

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

                    case "AddItemToPool":
                        Console.WriteLine(dm.AddItemToPool(command.Skip(1).ToArray()));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(dm.PickUpItem(command.Skip(1).ToArray()));
                        break;

                    case "UseItem":
                        Console.WriteLine(dm.UseItem(command.Skip(1).ToArray()));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(dm.UseItemOn(command.Skip(1).ToArray()));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(dm.GiveCharacterItem(command.Skip(1).ToArray()));
                        break;

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

                    case "Attack":
                        Console.Write(dm.Attack(command.Skip(1).ToArray()));
                        break;

                    case "Heal":
                        Console.WriteLine(dm.Heal(command.Skip(1).ToArray()));
                        break;

                    case "EndTurn":
                        Console.Write(dm.EndTurn(command.Skip(1).ToArray()));
                        gameOver = dm.IsGameOver();
                        //if (dm.IsGameOver())
                        //{
                        //    Console.Write(dm.GetStats());
                        //    return;
                        //}
                        break;

                    case "IsGameOver":
                        gameOver = dm.IsGameOver();
                        //if (dm.IsGameOver())
                        // {
                        //    Console.Write(dm.GetStats());
                        //    return;
                        //}
                        break;
                    }

                    if (gameOver)
                    {
                        Console.Write(dm.GetStats());
                        return;
                    }
                }
                catch (Exception exception)
                {
                    string exceptionDetails = string.Empty;

                    switch (exception.GetType().Name)
                    {
                    case "ArgumentException":
                        exceptionDetails = "Parameter Error:";
                        break;

                    case "InvalidOperationException":
                        exceptionDetails = "Invalid Operation:";
                        break;
                    }

                    Console.WriteLine($"{exceptionDetails} {exception.Message}");
                }
            }
        }
Exemple #10
0
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            var dungeonMaster = new DungeonMaster();
            var input         = "";
            var output        = new StringBuilder();

            while (!string.IsNullOrEmpty(input = Console.ReadLine()))
            {
                try
                {
                    var arguments = input.Split();
                    var command   = arguments[0];
                    arguments = arguments.Skip(1).ToArray();

                    switch (command)
                    {
                    case "JoinParty":
                        output.AppendLine(dungeonMaster.JoinParty(arguments));
                        break;

                    case "AddItemToPool":
                        output.AppendLine(dungeonMaster.AddItemToPool(arguments));
                        break;

                    case "PickUpItem":
                        output.AppendLine(dungeonMaster.PickUpItem(arguments));
                        break;

                    case "UseItem":
                        output.AppendLine(dungeonMaster.UseItem(arguments));
                        break;

                    case "UseItemOn":
                        output.AppendLine(dungeonMaster.UseItemOn(arguments));
                        break;

                    case "GiveCharacterItem":
                        output.AppendLine(dungeonMaster.GiveCharacterItem(arguments));
                        break;

                    case "GetStats":
                        output.AppendLine(dungeonMaster.GetStats());
                        break;

                    case "Attack":
                        output.AppendLine(dungeonMaster.Attack(arguments));
                        break;

                    case "Heal":
                        output.AppendLine(dungeonMaster.Heal(arguments));
                        break;

                    case "EndTurn":
                        output.AppendLine(dungeonMaster.EndTurn(null));
                        break;

                    case "IsGameOver":
                        output.AppendLine(dungeonMaster.IsGameOver().ToString());
                        break;
                    }
                }
                catch (ArgumentException e)
                {
                    output.AppendLine($"Parameter Error: {e.Message}");
                }
                catch (InvalidOperationException e)
                {
                    output.AppendLine($"Invalid Operation: {e.Message}");
                }

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

            output.AppendLine($"Final stats:{Environment.NewLine}{dungeonMaster.GetStats()}");

            Console.Write(output.ToString());
        }
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            DungeonMaster dungeonMaster = new DungeonMaster();
            bool          isGameOver    = false;

            while (true)
            {
                try
                {
                    string input = Console.ReadLine();

                    if (string.IsNullOrEmpty(input) || isGameOver)
                    {
                        break;
                    }

                    string[] arguments = input.Split();
                    string   command   = arguments[0];
                    arguments = arguments.Skip(1).ToArray();

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

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

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

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

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

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

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

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

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

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

                    case "IsGameOver":
                        if (dungeonMaster.IsGameOver())
                        {
                            isGameOver = true;
                            Console.WriteLine(true);
                        }
                        else
                        {
                            Console.WriteLine(false);
                        }
                        break;
                    }
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine("Parameter Error: " + ae.Message);
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine("Invalid Operation: " + ioe.Message);
                }
            }

            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
Exemple #12
0
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            var master = new DungeonMaster();

            while (true)
            {
                var input = Console.ReadLine();
                if (String.IsNullOrEmpty(input))
                {
                    var builder = new StringBuilder();
                    builder.AppendLine("Final stats:");
                    builder.Append(master.GetStats());
                    Console.WriteLine(builder.ToString().Trim());
                    return;
                }

                string[] command   = input.Split();
                var      arguments = command.Skip(1).ToArray();

                try
                {
                    switch (command[0])
                    {
                    case "JoinParty":
                        Console.WriteLine(master.JoinParty(arguments));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(master.AddItemToPool(arguments));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(master.PickUpItem(arguments));
                        break;

                    case "UseItem":
                        Console.WriteLine(master.UseItem(arguments));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(master.UseItemOn(arguments));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(master.GiveCharacterItem(arguments));
                        break;

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

                    case "Attack":
                        Console.WriteLine(master.Attack(arguments));
                        break;

                    case "Heal":
                        Console.WriteLine(master.Heal(arguments));
                        break;

                    case "EndTurn":
                        Console.WriteLine(master.EndTurn(arguments));
                        if (master.IsGameOver())
                        {
                            var builder = new StringBuilder();
                            builder.AppendLine("Final stats:");
                            builder.Append((master.GetStats()));
                            Console.WriteLine(builder.ToString().Trim());
                            return;
                        }
                        break;

                    case "IsGameOver":
                        Console.WriteLine(master.IsGameOver());
                        break;
                    }
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine($"Parameter Error: {ae.Message}");
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine($"Invalid Operation: {ioe.Message}");
                }
            }
        }
Exemple #13
0
        static void Main(string[] args)
        {
            var engine = new DungeonMaster();

            string line = Console.ReadLine();

            while (!string.IsNullOrEmpty(line))
            {
                var array = line.Split(' ');

                if (array[0] == "IsGameOver")
                {
                    break;
                }
                try
                {
                    switch (array[0])
                    {
                    case "JoinParty":
                        Console.WriteLine(engine.JoinParty(array.Skip(1).ToArray()));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(engine.AddItemToPool(array.Skip(1).ToArray()));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(engine.PickUpItem(array.Skip(1).ToArray()));
                        break;

                    case "UseItem":
                        Console.WriteLine(engine.UseItem(array.Skip(1).ToArray()));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(engine.UseItemOn(array.Skip(1).ToArray()));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(engine.GiveCharacterItem(array.Skip(1).ToArray()));
                        break;

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

                    case "Attack":
                        Console.WriteLine(engine.Attack(array.Skip(1).ToArray()));
                        break;

                    case "Heal":
                        Console.WriteLine(engine.Heal(array.Skip(1).ToArray()));
                        break;

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

                line = Console.ReadLine();
            }

            Console.WriteLine("Final stats:");
            Console.WriteLine(engine.GetStats());
        }
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            DungeonMaster dungeonMaster = new DungeonMaster();
            string        input         = Console.ReadLine();

            while (!string.IsNullOrWhiteSpace(input))
            {
                string[] splitInput = input.Split();
                string   command    = splitInput[0];

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

                string[] arguments = splitInput.Skip(1).ToArray();

                string output = string.Empty;

                try
                {
                    switch (command)
                    {
                    case "JoinParty":
                        output = dungeonMaster.JoinParty(arguments);
                        break;

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

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

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

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

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

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

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

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

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

                    case "IsGameOver":
                        output = dungeonMaster.IsGameOver().ToString();
                        break;
                    }
                }
                catch (InvalidOperationException ex)
                {
                    output = $"Invalid Operation: {ex.Message}";
                }
                catch (ArgumentException ex)
                {
                    output = $"Parameter Error: {ex.Message}";
                }
                catch (Exception ex)
                {
                    output = ex.Message;
                }

                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(output);
                Console.ForegroundColor = ConsoleColor.White;

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

                input = Console.ReadLine();
            }

            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
Exemple #15
0
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main()
        {
            DungeonMaster dungeonMaster = new DungeonMaster();

            var input = Console.ReadLine()?.Split();

            while (!string.IsNullOrEmpty(input[0]))
            {
                var command     = input[0];
                var commandArgs = input.Skip(1).ToArray();

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

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

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

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

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

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

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

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

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

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

                    case "IsGameOver":
                        Console.WriteLine(dungeonMaster.IsGameOver());
                        break;
                    }
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine($"Parameter Error: {ae.Message}");
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine($"Invalid Operation: {ioe.Message}");
                }
                input = input = Console.ReadLine()?.Split();
            }
            Console.WriteLine("Final stats:");
            Console.WriteLine(dungeonMaster.GetStats());
        }
Exemple #16
0
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main()
        {
            DungeonMaster master = new DungeonMaster();

            string command = Console.ReadLine();

            while (true)
            {
                if (string.IsNullOrEmpty(command))
                {
                    Console.WriteLine($"Final stats:");
                    Console.WriteLine(master.GetStats());
                    break;
                }

                string[] commandTokens = command.Split(' ');

                string[] methodArgs = commandTokens.Skip(1).ToArray();

                try
                {
                    switch (commandTokens[0])
                    {
                    case "JoinParty":
                        Console.WriteLine(master.JoinParty(methodArgs));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(master.AddItemToPool(methodArgs));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(master.PickUpItem(methodArgs));
                        break;

                    case "UseItem":
                        Console.WriteLine(master.UseItem(methodArgs));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(master.UseItemOn(methodArgs));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(master.GiveCharacterItem(methodArgs));
                        break;

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

                    case "Attack":
                        Console.WriteLine(master.Attack(methodArgs));
                        break;

                    case "Heal":
                        Console.WriteLine(master.Heal(methodArgs));
                        break;

                    case "EndTurn":
                        Console.WriteLine(master.EndTurn(methodArgs));
                        break;
                    }
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine("Parameter Error: " + ex.Message);
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine("Invalid Operation: " + ex.Message);
                }

                if (master.IsGameOver())
                {
                    Console.WriteLine("Final stats:");
                    Console.WriteLine(master.GetStats());
                    break;
                }

                command = Console.ReadLine();
            }
        }
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            DungeonMaster game = new DungeonMaster();
            string        inputLine;

            while ((inputLine = Console.ReadLine()) != null && inputLine != string.Empty && game.IsOver == false)
            {
                try
                {
                    string[] arguments   = inputLine.Split();
                    string   commandType = arguments[0];

                    arguments = arguments.Skip(1).ToArray();
                    switch (commandType)
                    {
                    case "JoinParty":
                        Console.WriteLine(game.JoinParty(arguments));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(game.AddItemToPool(arguments));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(game.PickUpItem(arguments));
                        break;

                    case "UseItem":
                        Console.WriteLine(game.UseItem(arguments));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(game.UseItemOn(arguments));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(game.GiveCharacterItem(arguments));
                        break;

                    case "GetStats":
                        Console.Write(game.GetStats());
                        break;

                    case "Attack":
                        Console.WriteLine(game.Attack(arguments));
                        break;

                    case "Heal":
                        Console.WriteLine(game.Heal(arguments));
                        break;

                    case "EndTurn":
                        Console.Write(game.EndTurn(arguments));
                        break;

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

                if (game.IsOver)
                {
                    break;
                }
            }

            Console.WriteLine("Final stats:");
            Console.Write(game.GetStats());
        }
        // DO NOT rename this file's namespace or class name.
        // However, you ARE allowed to use your own namespaces (or no namespaces at all if you prefer) in other classes.
        public static void Main(string[] args)
        {
            DungeonMaster dungeonMaster = new DungeonMaster();
            string        input;

            while (string.IsNullOrEmpty(input = Console.ReadLine()) == false)
            {
                string[] split   = input.Split();
                string   command = split[0];
                try
                {
                    switch (command)
                    {
                    case "JoinParty":
                        Console.WriteLine(dungeonMaster.JoinParty(split.Skip(1).ToArray()));
                        break;

                    case "AddItemToPool":
                        Console.WriteLine(dungeonMaster.AddItemToPool(split.Skip(1).ToArray()));
                        break;

                    case "PickUpItem":
                        Console.WriteLine(dungeonMaster.PickUpItem(split.Skip(1).ToArray()));
                        break;

                    case "UseItem":
                        Console.WriteLine(dungeonMaster.UseItem(split.Skip(1).ToArray()));
                        break;

                    case "UseItemOn":
                        Console.WriteLine(dungeonMaster.UseItemOn(split.Skip(1).ToArray()));
                        break;

                    case "GiveCharacterItem":
                        Console.WriteLine(dungeonMaster.GiveCharacterItem(split.Skip(1).ToArray()));
                        break;

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

                    case "Attack":
                        Console.WriteLine(dungeonMaster.Attack(split.Skip(1).ToArray()));
                        break;

                    case "Heal":
                        Console.WriteLine(dungeonMaster.Heal(split.Skip(1).ToArray()));
                        break;

                    case "EndTurn":
                        Console.WriteLine(dungeonMaster.EndTurn(split.Skip(1).ToArray()));
                        if (dungeonMaster.IsGameOver())
                        {
                            Console.WriteLine("Final stats:");
                            Console.WriteLine(dungeonMaster.GetStats());
                            return;
                        }
                        break;

                    case "IsGameOver":
                        break;
                    }
                }
                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());
        }