Olá,
Estou à dois dias aproximadamente tentando criar um losango, até que estou consiguindo, mas a questão está ao soltar os espaços. Eu não quero resposta, quero que vocês me ajudam a solucionar o problema, como dicas e afin’s.
Obrigado!
Olá,
Estou à dois dias aproximadamente tentando criar um losango, até que estou consiguindo, mas a questão está ao soltar os espaços. Eu não quero resposta, quero que vocês me ajudam a solucionar o problema, como dicas e afin’s.
Obrigado!
Não entendi… como assim “a questão está ao soltar os espaços”?
[]'s
o meu losango está saindo dessa forma:
*
sendo que, tem que sair assim:
00000000
000000
00***00
0*******0
0******0
00**00
000000
00000000
(Obs: Os zeros estão representados como espaço.)
Endendi. Quais parâmetros você passa para desenhá-lo, quantidade de colunas e linhas?
System.out.println(" **");
System.out.println(" ******");
System.out.println(" ************");
System.out.println(" ******************");
System.out.println(" **********************");
System.out.println("***************************");
System.out.println(" **********************");
System.out.println(" ******************");
System.out.println(" ************");
System.out.println(" ******");
System.out.println(" **");
Joga tudo isso na Main e melhora ae conforme suas necessidades,
valeu
que sacanagem o que o Rezende mostrou ai huhauhauhauhuahuhaa
cara… se tu conseguindo pra um lado, nao e so modificar o algoritmo pra fazer do outro lado, nao? eu fiz um algoritmo pra um lado e depois peguei ele e troquei tudo, tipo, quando eu andava pela matriz, no for, onde tinha + eu coloquei -, onde tinha variavel medindo o inicio da matriz eu fiz elas medirem o final… Sacou a ideia?
o que eu fiz foi achar a metade da matriz, o meio dela. ai saio andando de cima pra baixo (linhas), e nas colunas, saio do meio pra direita adicionando um “*” e do meio pra esquerda tb
na outra iteracao adiciono o que tinha adicionado antes mais um. tipo… na iteracao1, nao add nada. na iterecao2 eu adiciono um 8 pra direita e um p esquerda e assim vou indo.
ai fica um for mais externo pra andar pelas linhas (até aí, normal) e dentro dele ficam mais 2 for, um pra andar pra direita e outro pra andar pela esquerda. depois eu vejo se nao proxima iteracao eu tenho que expandir (adicionar mais *) ou retroceder (adicionar menos *)
fase de expansao :
0000*0000 - iteracao 1
000***000 - iteracao 2
00*****00 - iteracao 3
0*******0 - iteracao 4
********* - iteracao 5
daqui pra frente nao tem mais expansao, tenho que retroceder
o.O como e que eu escrevo isso? fase de retrocedimento? retroção? meu portugues bugou agora… mas tu entendeu, ne? hehehe
0*******0
00*****00
000***000
0000*0000
no final :
0000*0000
000***000
00*****00
0*******0
*********
0*******0
00*****00
000***000
0000*0000
é isso aí, né?
eu falo fase de expansao, fase de retrocesso (achei uma palavra legal, olha aí! =) ), parece uma coisa de outro mundo, mas é só marcar quando se deve fazer essas coisas, simplesmente usando variaveis, inteiros pra saber o que se ta fazendo e mudar o comportamento na hora certa, nada de mais, nao…
é lasca explicar isso, fica meio abstrato… espero ter ajudado, ja que vc disse que nao quer o codigo…
precisando, e so falar!
eu tava pensando aqui num jeito mais facil de fazer isso.
e foi mal por ter digitado mt rapido na outra resposta… vi que sairam alg coisas erradas… tipo disse que era pra colocar “8”, na verdade era “*”…
bem, vamos la :
só é preciso vc ter umas variaveis de controle, pra saber :
aí fica um for pras linhas, um pras colunas e os testes pra saber se deve expandir, se deve retroceder e setar as variaveis de quantidade de * (pra prox iteracao, digo qnts * vou usar) e o tamanho da margem, a distancia da borda pro primeiro *.