Jogo Dominó

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?

Obrigado!!!

Esse método não vai gerar 28 peças mas sim 49. Por exemplo a peça 0-5 e a 5-0 são a mesma peça e no teu código vais gerar 2 diferentes.

Em relação ao imprimir 0, não vejo nada de errado, mostra o método onde imprimes.

marcelomformiga,

Duas dicas:

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

[/code]

Na realidade é 1 a mais…

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

Acho que desse modo também era pra dar certo, né?

Obrigado pelas dicas até agora!!!

NSMutableSet *set = [NSMutableSet set]; for (int i = 0; i < 6; i++) { for (int j = 0; j < (i + 1); j++) { Piece *piece = [[Piece alloc] initWithIndexPath:[NSIndexPath indexPathForRow:i inSection:j]]; [set addObject:piece]; [piece release]; } } pieces = [set retain];

O cara, tu estuda na Unisinos ?, deram um trabalho sobre isso tambem, me falaram que era complicado . . .

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:

Domino.Pedra@66848c
Domino.Pedra@8813f2
Domino.Pedra@1d58aae
Domino.Pedra@83cc67
Domino.Pedra@e09713
.
.
.

e assim segue até a última peça. Alguém saberia dizer o pq disso?

Como posso fazer pra trabalhar com os valores de cada peça ( i , j )?

Adiciona o toString à tua classe Pedra:

public String toString(){ return lado1 +", " + lado2; }