public string CreateCommand(bool preAct, Movement movement, bool postAct)
        {
            if (movement == Movement.Stop)
            {
                if (preAct || postAct)
                {
                    return(_client.Act());
                }
                else
                {
                    return(_movementMap[Movement.Stop]);
                }
            }

            if (preAct && postAct)
            {
                postAct = false;
            }

            var preActCommand   = preAct ? _client.Act() + "," : string.Empty;
            var movementCommand = _movementMap[movement];
            var postActCommand  = postAct ? "," + _client.Act() : string.Empty;

            return(preActCommand + movementCommand + postActCommand);
        }
Пример #2
0
        private static void Move(BattleNetClient gcb)
        {
            var r    = new Random();
            var done = false;

            switch (r.Next(5))
            {
            case 0:
                if (!gcb.IsBarrierAt(gcb.PlayerX, gcb.PlayerY - 1))
                {
                    gcb.SendActions(gcb.Up());
                    Console.WriteLine($"Move up");
                    done = true;
                }
                break;

            case 1:
                if (!gcb.IsBarrierAt(gcb.PlayerX + 1, gcb.PlayerY))
                {
                    gcb.SendActions(gcb.Right());
                    Console.WriteLine($"Move right");
                    done = true;
                }
                break;

            case 2:
                if (!gcb.IsBarrierAt(gcb.PlayerX, gcb.PlayerY + 1))
                {
                    gcb.SendActions(gcb.Down());
                    Console.WriteLine($"Move down");
                    done = true;
                }
                break;

            case 3:
                if (!gcb.IsBarrierAt(gcb.PlayerX - 1, gcb.PlayerY))
                {
                    gcb.SendActions(gcb.Left());
                    Console.WriteLine($"Move left");
                    done = true;
                }
                break;

            case 4:
                gcb.SendActions(gcb.Act());
                Console.WriteLine($"act");
                done = true;
                break;
            }
            if (done == false)
            {
                gcb.SendActions(gcb.Blank());
            }
        }