function that inserts the players on the field:

Code:

int num = 0;
string nEq1 = "Sporting", nEq2 = "Porto", idJogador;
campo c1;
ponto p;
c1.eq1.setNome(nEq1);
c1.eq1.setNomeMCampo("esquerdo");
c1.eq2.setNomeMCampo("direito");
//player1
idJogador = nEq1.at(0);
idJogador += "1";
guardaRedes r1(1,0,0,idJogador);
c1.eq1.insere(r1);
p = r1.posicaoVaga(c1.campoJogo, c1.eq1.getNomeMCampo());
r1.setPosL(p.x);
r1.setPosC(p.y);
c1.campoJogo[r1.getPosL()][r1.getPosC()]=r1.getID();
//player2
idJogador = nEq1.at(0);
idJogador += "2";
defesa d2(2,0,0,idJogador);
c1.eq1.insere(d2);
p = d2.posicaoVaga(c1.campoJogo, c1.eq1.getNomeMCampo());
d2.setPosL(p.x);
d2.setPosC(p.y);
c1.campoJogo[d2.getPosL()][d2.getPosC()]=d2.getID();
//player3
idJogador = nEq1.at(0);
idJogador += "3";
defesa d3(3,0,0,idJogador);
c1.eq1.insere(d3);
p = d3.posicaoVaga(c1.campoJogo, c1.eq1.getNomeMCampo());
d3.setPosL(p.x);
d3.setPosC(p.y);
c1.campoJogo[d3.getPosL()][d3.getPosC()]=d3.getID();
//player4
idJogador = nEq1.at(0);
idJogador += "4";
atacante a4(4,0,0,idJogador);
c1.eq1.insere(a4);
p = a4.posicaoVaga(c1.campoJogo, c1.eq1.getNomeMCampo());
a4.setPosL(p.x);
a4.setPosC(p.y);
c1.campoJogo[a4.getPosL()][a4.getPosC()]=a4.getID();
//player5
idJogador = nEq1.at(0);
idJogador += "5";
atacante a5(5,0,0,idJogador);
c1.eq1.insere(a5);
p = a5.posicaoVaga(c1.campoJogo, c1.eq1.getNomeMCampo());
a5.setPosL(p.x);
a5.setPosC(p.y);
c1.campoJogo[a5.getPosL()][a5.getPosC()]=a5.getID();

if i change the order of insertion, the players will all appear in the field.

random function (different random value for each player type)

Code:

ponto atacante::posicaoVaga(string campJogo[20][37],string nomeCampo)const
{
int posL = 0, posC = 0;
srand ((unsigned) time (NULL));
posL = rand () % 20;
posC = rand () % 6;
ponto p;
while (campJogo[posL][posC] != " ")
if (campJogo[posL][posC] == " ")
break;
else
{
srand ((unsigned) time (NULL));
posL = rand () % 20;
posC = rand () % 6;
}
if (nomeCampo == "esquerdo")
{
p.x = posL;
p.y = 17 - posC;
}
else if (nomeCampo == "direito")
{
p.x = posL;
p.y = 18 + posC;
}
return p;
}

What am i doing wrong? (to not say stupid...)