コード例 #1
0
 public Engine(IWriter writer, IReader reader, DungeonMaster dungeonMaster, ICommandInterpreter commandInterpreter)
 {
     this.writer             = writer;
     this.reader             = reader;
     this.dungeonMaster      = dungeonMaster;
     this.commandInterpreter = commandInterpreter;
 }
コード例 #2
0
        public void Run()
        {
            dm     = new DungeonMaster();
            output = new StringBuilder();

            ExecuteCommands();

            GetFinalStats();

            PrintOutPut();
        }
コード例 #3
0
ファイル: Engine.cs プロジェクト: irinastoicheva/Csharp-OOP
        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;
            }
        }
コード例 #4
0
 public Engine(IReader reader, IWriter writer)
 {
     this.reader        = reader;
     this.writer        = writer;
     this.dungeonMaster = new DungeonMaster();
 }
コード例 #5
0
 public Engine()
 {
     this.dungeonMaster = new DungeonMaster();
 }
コード例 #6
0
ファイル: Engine.cs プロジェクト: vankatalp360/C-OOP-Basics
 public Engine()
 {
     this.isRun         = true;
     this.dungeonMaster = new DungeonMaster();
 }
コード例 #7
0
 public Engine(DungeonMaster dungeonMaster)
 {
     this.dungeonMaster = dungeonMaster;
 }
コード例 #8
0
        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());
        }
コード例 #9
0
 public CommandInterpreter(DungeonMaster dungeonMaster)
 {
     this.dungeonMaster = dungeonMaster;
 }
コード例 #10
0
 public Engine(DungeonMaster dungeonMaster)
 {
     this.isRunning     = true;
     this.dungeonMaster = dungeonMaster;
 }
コード例 #11
0
 public Engine()
 {
     this.master     = new DungeonMaster();
     this.isGameOver = false;
 }
コード例 #12
0
 public Engine()
 {
     this.dungeonMaster = new DungeonMaster();
     this.inputReader   = new ConsoleReader();
     this.outputWriter  = new ConsoleWriter();
 }
コード例 #13
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());
        }
コード例 #14
0
        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();
            }
        }
コード例 #15
0
ファイル: Engine.cs プロジェクト: irinastoicheva/Csharp-OOP
 public Engine(DungeonMaster dungeonMaster)
 {
     this.dungeonMaster = dungeonMaster;
     gameOver           = false;
 }
コード例 #16
0
ファイル: Engine.cs プロジェクト: StackSmack007/OOP-BASICS
 public Engine()
 {
     dg = new DungeonMaster();
 }
コード例 #17
0
ファイル: Engine.cs プロジェクト: EmORz/CSharp-Fundamentals
 public Engine()
 {
     master = new DungeonMaster();
 }
コード例 #18
0
 public Engine(DungeonMaster master)
 {
     this.master = master;
 }