Ir para o conteúdo
polska

Jogo da memória - geração de tabuleiro

Mensagens Recomendadas

polska

Boas pessoal, tenho que implementar duas classes para dois jogos diferentes, e depois tenho que fazer o respectivo uso das classes.. Uma das classes é para o jogo da memória, para quem não sabe o que é: link

Bem, no meu construtor eu pretendo chamar um método que me gere um tabuleiro com combinações novas.. O tabuleiro é um array bidimensional 6x6 , de inteiros.. A minha pergunta é qual a maneira mais eficiente para fazer este método ? Eu tenho definido gerar apenas números aleatórios de 1 a 36 (6x6), e sei gerar os números, o meu problema é depois com a repetição de números aleatórios, e como distribui-los também aleatoriamente na matriz, o que vai implicar também posições repetidas e etc... alguma ajuda ? :D


Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

antes do mais, não deverias popular a matriz com números aleatórios.

o que deverias fazer é criar uma matriz com os números bem definidos (dois de cada) e depois baralhar tudo


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
polska

antes do mais, não deverias popular a matriz com números aleatórios.

o que deverias fazer é criar uma matriz com os números bem definidos (dois de cada) e depois baralhar tudo

Hum, entendo.. Não sei se será da mesma maneira que tu pensas, mas então assim bastaria-me percorrer cada posição da matriz, e gerar um aleatório para coluna e outro para linha, e trocar as variáveis em questão.. No final certamente que não encontraria uma matriz igual, mas achas esta maneira engenhosa?

Editado por polska

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
polska

Para baralhar o tabuleiro, faço dois ciclos for encadeados para percorrer a matriz do tabuleiro, e para cada posição (i,j) gero dois números aleatórios, uma linha e coluna (x,y), e troco o valor de (i,j) por (x,y) .. No final encontro uma matriz baralhada.. Penso que será uma maneira correcta de fazer isto certo?

Editado por polska

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Penso que será uma maneira correcta de fazer isto certo?

Sim, mas lembra-te de permitir a troca dum elemento com ele próprio, senão diminuis a "aleatoriedade" do processo.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
polska

Sim, mas lembra-te de permitir a troca dum elemento com ele próprio, senão diminuis a "aleatoriedade" do processo.

Eu não defini condições nenhumas no processo, troca com qualquer linha,coluna gerada :)

ou então podes fazer isto : http://www.portugal-a-programar.pt/topic/57964-sudoku/#entry488766

que não é mais do que baralhar uma matriz

Nem me lembrei disso! Por acaso na altura segui o tópico e também decidi fazer o meu programa :P .. Porém agora já fiz a outra solução, vou deixar, funciona 5* para a necessidade :)

Editado por polska

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.