예제 #1
0
    static void Main()
    {
        IReader reader = new ConsoleReader();
        IWriter writer = new ConsoleWriter();

        IAmmunitionFactory ammunitionFactory = new AmmunitionFactory();
        ISoldierFactory    soldierFactory    = new SoldiersFactory();
        IMissionFactory    missionFactory    = new MissionFactory();

        IArmy              army              = new Army();
        IWareHouse         wareHouse         = new WareHouse();
        IMissionController missionController = new MissionController(army, wareHouse);

        IGameController gameController = new GameController(missionController);

        IEngine engine = new Engine(reader, writer, ammunitionFactory, soldierFactory, missionFactory, gameController);

        engine.Run();
    }
예제 #2
0
 public Army()
 {
     this.soldiers = new List <ISoldier>();
     this.factory  = new SoldiersFactory();
 }
    public void GiveInputToGameController(string input)
    {
        var data = input.Split();

        if (data[0].Equals("Soldier"))
        {
            string type       = string.Empty;
            string name       = string.Empty;
            int    age        = 0;
            int    experience = 0;
            double speed      = 0d;
            double endurance  = 0d;
            double motivation = 0;
            double maxWeight  = 0d;

            if (data.Length == 3)
            {
                type = data[1];
                name = data[2];
            }
            else
            {
                type       = data[1];
                name       = data[2];
                age        = int.Parse(data[3]);
                experience = int.Parse(data[4]);
                speed      = double.Parse(data[5]);
                endurance  = double.Parse(data[6]);
                motivation = double.Parse(data[7]);
                maxWeight  = double.Parse(data[8]);
            }

            switch (type)
            {
            case "Ranker":
                var ranker = SoldiersFactory.GenerateRanker(name, age, experience, speed, endurance,
                                                            motivation, maxWeight);
                AddSoldierToArmy(ranker, type);
                break;

            case "Corporal":
                var corporal = SoldiersFactory.GenerateCorporal(name, age, experience, speed, endurance,
                                                                motivation, maxWeight);
                AddSoldierToArmy(corporal, type);
                break;

            case "Special-Force":
                var specialForce = SoldiersFactory.GenerateSpecialForce(name, age, experience, speed, endurance,
                                                                        motivation, maxWeight);
                AddSoldierToArmy(specialForce, type);
                break;

            case "Regenerate":
                this.soldierController.TeamRegenerate(army, name);
                break;

            case "Vacation":
                this.soldierController.TeamGoesOnVacation(army, name);
                break;

            case "Bonus":
                this.soldierController.TeamGetBonus(army, name);
                break;
            }
        }
        else if (data[0].Equals("WearHouse"))
        {
            string name   = data[1];
            int    number = int.Parse(data[2]);

            AddAmmunitions(AmmunitionFactory.CreateAmmunitions(name, number));
        }
        else if (data[0].Equals("Mission"))
        {
            this.MissionControllerField.PerformMission(new Easy());
        }
    }