Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: LuisCardenas123 en 25 Septiembre 2019, 18:22 pm



Título: Crear rombo de asteriscos en javascript
Publicado por: LuisCardenas123 en 25 Septiembre 2019, 18:22 pm
Hola, resulta que llevo ya un buen tiempo intentando hacer este ejercicio en javascript pero no termina de salirme. Básicamente hay que dibujar un rombo como en el de la foto, y ami solo me sale este triangulo. Si hay alguien que pudiera ayudarme, gracias.
Este es el codigo que tengo yo:

Código
  1. for (i=1; i<=4; i++){
  2.  for (j=0; j<i; j++){
  3.    document.write("*");
  4.  }
  5.    document.write("<br/>");
  6. }


ROMBO QUE HAY QUE HACER: https://imgur.com/a/2AtZFvw


MOD: titulo a minusculas.
Mod: Obligatorio el uso de etiquetas GeSHi.


Título: Re: Crear rombo de asteriscos en javascript
Publicado por: natuprog en 31 Octubre 2019, 00:30 am
Hazlo mejor con innerHTML

Código
  1.  
  2. for (i=1; i<=4; i++){
  3.  for (j=0; j<i; j++){
  4.    document.innerHTML +=  "*";
  5.  }
  6.    document.innerHTML += "<br>";
  7. }
  8.  


Título: Re: Crear rombo de asteriscos en javascript
Publicado por: engel lex en 31 Octubre 2019, 01:37 am
Hazlo mejor con innerHTML

Código
  1.  
  2. for (i=1; i<=4; i++){
  3.  for (j=0; j<i; j++){
  4.    document.innerHTML +=  "*";
  5.  }
  6.    document.innerHTML += "<br>";
  7. }
  8.  

eso realmente no cambia nada y en este caso es mejor directamente el uso de write porque lo hace tipo consola y no toca el DOM


Título: Re: Crear rombo de asteriscos en javascript
Publicado por: Agente Naranja en 4 Noviembre 2019, 09:41 am
Yo te digo lo que haría: Primero dibujar el rombo en papel con una cuadrícula, usando colores para ver las diferentes variables.
(https://i.imgur.com/P28vD70.png)

De lo que yo veo, tienes varios espacios en color amarillo, seguido por el cuerpo del rombo que son uno o dos asteriscos rodeando una secuencia de espacios. Por tanto yo comenzaría creando un método llamado espacios(fila) que te devolviera el número de espacios según la fila. En la fila 1, imprimes tres espacios (los cuadros amarillos). En la fila 2, imprimes dos espacios, en la 3 imprimes 1, en la cuatro imprimes ninguno, y luego al revés.

Después haría un método llamado lineaDeRombo(fila) que según la fila, te imprima el rombo. Por ejemplo, en la fila 1 tienes que imprimir "*", o sea un asterisco seguido de 0 espacios, y 0 asteriscos. Trata de entender el patrón para cada una de las filas y así podrás escribir el código:
fila 1: imprimes 1 asterisco, seguido de 0 espacios, seguido de 0 rombos: 1,0,0
fila 2: imprimes 1 asterisco, seguido de 1 espacio, seguido de 1 rombo: 1,1,1
fila 3: imprimes 1 asterisco, seguido de 3 espacios, seguido de 1 rombo: 1,3,1
fila 4: imprimes 1 asterisco, seguido de 5 espacios, seguido de 1 rombo: 1,5,1

A lo mejor es un poco difícil hacer la parte inferior, igual te la dejo que la hagas tú  ;D

Luego lo que yo haría sería algo como
Código:
for (i=0;i<7;++i) {
   document.write(espacios(i) + lineaDeRombo(i) + espacios(i);
}
Espero que te ayude...