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; } } }
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; }