Boa noite pessoal!
Preciso fazer um jogo de Dominó em Java. Eu criei a classe Peças que tem o seguinte contrutor:
public Peças ( int lado1 , int lado2 )
{
this.lado1 = lado1 ;
this.lado2 = lado2 ;
}
E tenho na classe Jogo, um atributo “peças” que é uma Lista Sequencial e o seguinte método pra formar as 28 peças:
public void formarPeças ( )
{
for ( int i = 0 ; i <= 6 ; i ++ )
{ // for1
for ( int j = 0 ; j <= 6 ; j ++ )
{ // for2
p = new Peças ( i , j ) ;
peças.add( p ) ;
} // for2
} // for1
} // método
Mas acontece que quando mano imprimir a Lista, sai todas as peças com valor 0. Não sei o q estou fazendo de errado. Alguém sabe dizer onde está o erro?
[list]Evita usar caracteres especiais no teu código. Escrever Peças não é uma boa prática.[/list]
[list]Tua classe não deve ser Pecas e sim Peca, afinal seu modelo de Peca representa uma unidade de Peca.[/list]
Bem, eu não testei seu código, mas de cara eu ja faria de outra forma. Pense que as pedras do Dominó são formadas mais ou menos desta forma http://upload.wikimedia.org/wikipedia/commons/8/8d/Dominomatrix.svg . Sendo assim vc tem 6 pedras com o número 6, 5 pedras com número 5, e por ai vai…entendeu o raciocínio?
Então em código ficaria assim:
[code]public ArrayList formarPecas()
{
ArrayList<Pecas> pedras = new ArrayList<Pecas>();
int contador = 0;
for (int x = 6; x >= 0; x--)
{
for (int y = 0; y <= 6 - contador; y++)
{
pedras.add(new Peca(x, y)); //veja que eu estou usando a classe Peca e não Pecas. Rs.
}
contador++;
}
return pedras;
}
1 peça com o número 0
2 peças com o número 1
3 peças com o número 2
4 peças com o número 3
5 peças com o número 4
6 peças com o número 5
7 peças com o número 6
Desculpa, eu postei errado o meu método.
Na verdade o valor de “j” é igual a “i”, ficando assim o método:
public void formarPeças ( )
{
for ( int i = 0 ; i <= 6 ; i ++ )
{ // for1
for ( int j = i ; j <= 6 ; j ++ )
{ // for2
p = new Peças ( i , j ) ;
peças.add( p ) ;
} // for2
} // for1
} // método
Estudo na Unisinos, sim! Estou precisando fazer esse trabalho agora.
Descobri já onde estava esse erro, era no método add() da classe SequentialList. Porém está dando valor de retorno assim: