Crear rombo de asteriscos en javascript

Iniciado por LuisCardenas123, 25 Septiembre 2019, 18:22 PM

0 Miembros y 1 Visitante están viendo este tema.

LuisCardenas123

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 (javascript) [Seleccionar]
for (i=1; i<=4; i++){
 for (j=0; j<i; j++){
   document.write("*");
 }
   document.write("<br/>");
}



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



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

natuprog

Hazlo mejor con innerHTML

Código (javascript) [Seleccionar]


for (i=1; i<=4; i++){
  for (j=0; j<i; j++){
    document.innerHTML +=  "*";
  }
    document.innerHTML += "<br>";
}

engel lex

Cita de: natuprog en 31 Octubre 2019, 00:30 AM
Hazlo mejor con innerHTML

Código (javascript) [Seleccionar]


for (i=1; i<=4; i++){
  for (j=0; j<i; j++){
    document.innerHTML +=  "*";
  }
    document.innerHTML += "<br>";
}


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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Agente Naranja

Yo te digo lo que haría: Primero dibujar el rombo en papel con una cuadrícula, usando colores para ver las diferentes variables.


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
for (i=0;i<7;++i) {
  document.write(espacios(i) + lineaDeRombo(i) + espacios(i);
}

Espero que te ayude...