Oi galera, to precisando arrumar o item 3 desse exercício:
Simular um jogo de dados. Para cada partida, cada jogador lançará o dado uma vez, quem vence acumula um ponto e quem alcançar a maior pontuação será o vencedor.
1.Gerar um vetor de 5 jogadores.
2.Defina classe jogador com o número do jogador, o número rolado no dado e sua pontuação. 3.Cada jogador deverá jogar com todos os outros uma vez.
Do jeito que está, existe a partida [jogador 0 x jogador 1] e tbm [jogador 1 x jogador 0], o que não pode acontecer. Minha dúvida é: como fazer lógica pra cada jogador, dentro do vetor de objeto, jogar só uma vez com os outros?
O primeiro for no seu código representa no meu exemplo, o primeiro jogador da linha.
O segundo for representa os jogadores que vão jogar contra. Você não precisa percorrer todos jogadores novamente, só aqueles faltando. Seu for fica assim então:
//partidas
for(int i=0;i<J.Length -1 ;i++){ // -1 porque o último jogador não vai ter mais jogos
for(int j=i + 1; j<J.Length; j++){ // i + 1 porque você só marca jogos com o próximo
// você não precisa mais do if, porque o for só vai considerar jogadores diferentes
J[i].marcaPartida(J[i], J[j]);
}
}
Não rodei o código mas acredito que a idéia seja essa.