Пример #1
0
        private void  AssignPenaltyTakers()
        {
            //First i need to find all active players for each team
            int nTeam, nPlayer, nTaker;
            int max = -1, index = -1;

            kickTakers[0] = kickTakers[1] = 0;

            for (nTeam = 0; nTeam <= 1; nTeam++)
            {
                for (nPlayer = 1; nPlayer < teams[nTeam].NumPlayers; nPlayer++)
                {
                    if (((ESMSPlayer)teams[nTeam].getPlayer(nPlayer)).Status == ESMSPlayer.PLAYING)
                    {
                        kickTakers[nTeam]++;
                    }
                }
            }

            /* each team will have an even number of PK takers */
            kickTakers[0] = kickTakers[1] = (kickTakers[0] > kickTakers[1]?kickTakers[1]:kickTakers[0]);

            for (nTeam = 0; nTeam <= 1; nTeam++)
            {
                for (nTaker = 0; nTaker < kickTakers[nTeam]; nTaker++)
                /* for each penalty taker */
                {
                    for (nPlayer = 1; nPlayer < teams[nTeam].NumPlayers; nPlayer++)
                    {
                        if ((teams[nTeam].getPlayer(nPlayer).Shooting > max) && (((ESMSPlayer)teams[nTeam].getPlayer(nPlayer)).Status == ESMSPlayer.PLAYING))
                        {
                            max   = teams[nTeam].getPlayer(nPlayer).Shooting;
                            index = nPlayer;
                        }
                    }

                    /* copy the stats of the suitable player to PenaltyTaker */
                    //strcpy(PenaltyTaker[nTeam][nTaker].name, team[nTeam].player[index].name);
                    PenaltyTakers[nTeam][nTaker] = new PenaltyPlayer(teams[nTeam].getPlayer(index).Name, index, teams[nTeam].getPlayer(index).Shooting);
                    /* set active = 0, making sure that this player won't be chosen again */
                    ((ESMSPlayer)(teams[nTeam].getPlayer(index))).Status = -1;

                    max = index = -1;
                }
            }

            for (nTeam = 0; nTeam <= 1; nTeam++)
            {
                for (nTaker = 0; nTaker < kickTakers[nTeam]; nTaker++)
                /* for each penalty taker */
                {
                    /* copy the stats of the suitable player to PenaltyTaker */
                    //strcpy(PenaltyTaker[nTeam][nTaker].name, team[nTeam].player[index].name);

                    /* set active = 0, making sure that this player won't be chosen again */
                    ((ESMSPlayer)(teams[nTeam].getPlayer(PenaltyTakers[nTeam][nTaker].Number))).Status = ESMSPlayer.PLAYING;
                }
            }
        }
Пример #2
0
        private void  InitBlock()
        {
            for (int i = 0; i < 2; i++)
            {
                tmpArray[i] = new PenaltyPlayer[11];
            }

            // HZ: arregue esta inicializacion aca ya que el campo estaba inicializado mas abajo y daba error de .NET - internal PenaltyPlayer[][] PenaltyTakers = tmpArray;
            PenaltyTakers = tmpArray;
        }