• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

rand()

7 mensagens neste tópico

:wallbash: caros!

tenho um jogo de futebol que e divido por 4 [][][][]

quero fazer a funcao rand, que me coloque os jogadores aleatoriamente, cada um no seu devido "campo", como faço?

[guarda redes e defesas][medios][medios de outra equipa][guarda redes e medios de outra equipas]

alguem sabe?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

4 [][][][]?

Queres dizer 4 arrays? Não entendi muito bem essa parte...

Ora, eu se fosse a ti fazia uma class jogador:

class joagador {
   public:
   int posicao; // 1- defesa; 2 - medios
   int equipa; // 1- equipa 1; 2 - equipa 2
   jogador() {posicao=0;equipa=0;}
}

Depois é só criares os 22 jogadores (Não vou considerar suplentes);

joagador jogadores[22];
for (int n=0;n<2;n++) {
     for (int m=0;m<11;m++) {
        jogadores[m+(11*n)].equipa=1+n;
        jogadores[m+(11*n)].posicao=1+rand()%2;
    }
}

Depois, considerando que tens 1 arrays para cada posição:

int defesas1[22];
int medios1[22];
int defesas2[22];
int medios2[22];

//Contadores para manter as coisas organizadas e para deposis, se usares vectores, puderes fazer resize facilmente
int _defesas1=0;
int _medios1=0;
int _defesas2=0;
int _medios2=0;

for (int n=0;n<22;n++) {
   if (jogadores[n].equipa==1 && jogadores[n].posicao==1) {defesas1[_defesas1]=n;_defesas1++;}
   else if (jogadores[n].equipa==1 && jogadores[n].posicao==2) {medios1[_medios1]=n;_medios1++;}
   else if (jogadores[n].equipa==2 && jogadores[n].posicao==1) {defesas2[_defesas2]=n;_defesas2++;}
   else if (jogadores[n].equipa==2 && jogadores[n].posicao==2) {medios2[_medios2]=n;_medios2++;}
}

Não está um código lá muito bonito, mas acho que é isto...

Para além disso, caso jogadores[n].posicao ou jogadores[n].equipa for igual a 0 sabes que houve um erro.

Nota que este código também tem alguns problemas... por exemplo, pode calhar uma equipa sem defesas ou sem médios (Já agora, o que é feito dos avançados? :P)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

(Já agora, o que é feito dos avançados? :))

É futebol de 5...

Já agora, evita dar o código todo feito. É melhor para quem pergunta se deres uma ideia e deixares desenvolver :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens razão, se calhar fiz mal em dar o código todo, mas como não entendi o que eram os 4[][][][] acabei por por assim.

De qualquer das formas o código deve ter de ser muito alterado para ser usado no que se pretende, o que obriga a que se entenda o que está feito. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:( nao fui bem explicira, desculpem.

a prof disse, que a classe campo deve ter uma funçao para gerar uma nova posiçao aleatoria entre 2 valores limites (-1 e 1), para as abcissas podendo o y variar completamente.

ou seja os jogadores mudam de posiçao  com a sua função vaguear que gera 2 numeros aleatorios entre -1 e 1. Um desses numeros soma-se a x outro a y, e obtermos assim uma nova posição, depois e preciso ver se a posiçao esta livre e esta dentro dos limites.

como faço esta funçao?? nunca fiz nada disto:(

obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Cada vez estou mais confuso quanto ao enunciado...

Olha, adiciona-me no MSN se quiseres que te tente ajudar melhor... tens o meu mail do MSN no meu perfil.  :(

Se possível tenta arranjar uma cópia do enunciado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:D sim.

neste forum, está um topico jogo de futebol c++, está la o enunciado. Obrigada  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora