public void Fight(ref SoldierBehavior soldier1, ref SoldierBehavior soldier2)
        {
            int s1x = 1;
            int s2x = 1;

            if (soldier1.GetName() == "AirforceSoldierBehavior")
            {
                s1x = 5;
            }
            if (soldier2.GetName() == "AirforceSoldierBehavior")
            {
                s2x = 5;
            }
            if (soldier1.GetName() == "NavyforceSoldierBehavior")
            {
                s1x = 0;
            }
            if (soldier2.GetName() == "NavyforceSoldierBehavior")
            {
                s2x = 0;
            }

            var whoShoots = new Random();

            if (whoShoots.Next(1, 100) % 2 == 0)
            {
                soldier1.Attak(ref soldier2, s1x);
            }
            else
            {
                soldier2.Attak(ref soldier1, s2x);
            }
        }
예제 #2
0
        public void StartWar(IGameLogicStrategy gameLogicStrategy)
        {
            Iterator nIterator = naziArmy.army.CreateIterator();
            Iterator rIterator = redArmy.army.CreateIterator();

            while (Counter.LiveCounter(naziArmy.army) > 1 && Counter.LiveCounter(redArmy.army) > 1)
            {
                Item nItem = nIterator.First();
                Item rItem = rIterator.First();
                while (!nIterator.IsDone || !rIterator.IsDone)
                {
                    if (!nIterator.IsDone)
                    {
                        if (nItem.Soldier.GetName().StartsWith("DeadSoldierBehavior"))
                        {
                            nItem = nIterator.Next();
                        }
                    }
                    if (!rIterator.IsDone)
                    {
                        if (rItem.Soldier.GetName().StartsWith("DeadSoldierBehavior"))
                        {
                            rItem = rIterator.Next();
                        }
                    }
                    if (nIterator.IsDone)
                    {
                        break;
                    }
                    if (rIterator.IsDone)
                    {
                        break;
                    }
                    SoldierBehavior n = nItem.Soldier;
                    SoldierBehavior r = rItem.Soldier;
                    gameLogicStrategy.Fight(ref n, ref r);
                    nItem.Soldier = n;
                    rItem.Soldier = r;
                    nItem         = nIterator.Next();
                    rItem         = rIterator.Next();
                }
            }
            int natziLives = Counter.LiveCounter(naziArmy.army);
            int redLives   = Counter.LiveCounter(redArmy.army);

            Console.WriteLine("-----------------------------");

            if (natziLives < redLives)
            {
                redArmy.Outfights(naziArmy);
            }
            else
            {
                naziArmy.Outfights(redArmy);
            }

            Console.WriteLine("-----------------------------");
        }
예제 #3
0
 public Item(SoldierBehavior soldier)
 {
     this.soldier = soldier;
 }