Programa miniwin

Iniciado por InkaSoldier, 24 Junio 2019, 08:16 AM

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

InkaSoldier

Buenas que tal, soy nuevo en el foro pero espero que me puedan ayudar con unas dudas. Hace poco me inicie en el mundo de c++ con el programa dev c++ ya que me es un requerimiento para mis clases etc etc. La cosa es que me dejaron un problema de miniwin que se me hace imposible de resolver. Si alguien pudiera ayudarme se lo agradeceria mucho.

https://imgur.com/nxvjk8O
ese es el problema. Agradezco de antemano :D

jmpesp

#1
Desconozco la API a la que te refieres, pero basicamente lo que debes hacer es lo siguiente:

Mostrar una ventana de 600x600 pixeles.

Pintar el cielo, de color azul, que tendria 600 pixeles de ancho y 400 de alto, y su posicion relativa a la ventana seria 0, 0.

Pintar el suelo, que tendria 600 pixeles de ancho y 200 de alto, y su posicion relativa a la ventana en 0, 400.

Deberas crear una arreglo de enteros que representara el ambiente (todos los rectangulos en la pantalla). Este deberia tener un tama;o fijo de 30:


int ambiente[30];



Cada elemento del arreglo representara a un rectangulo, cuyo valor sera la altura de este.

Debera ser inicializado con valores al azar entre 100 y 250, como dice la consigna.

Para simular el movimiento del ambiente, simplemente desplazar todos los valores de los elementos del arreglo hacia la izquierda, y asignarle un valor aleatorio entre 100 y 250 al ultimo elemento.

Algo como esto:



// recorremos desde el elemento 0 al elemento 28 (el anteultimo) y le asignamos el valor del elemento siguiente.

// saltamos el ultimo
for(int i=0; i<29; i++) {
     ambiente[i] = ambiente[i + 1];
}

// le asingamos un valor al azar al ultimo elemento
ambiente[29] = rand()%(250-100 + 1) + 100;


Para pintar los rectangulos es simple. Sabemos que el ambiente ocupa todo el ancho de la pantalla y en el caben 30 rectangulos. El ancho de cada rectangulo es 600 / 30 = 20 pixeles.
El alto del rectangulo es su valor correspondiente en la matriz (ambiente donde i es el numero del rectangulo que estamos pintando).

La posicion X del rectangulo sera el numero del rectangulo multiplicado por el ancho (20), y la posicion Y seria la diferencia entre la altura del cielo (400px) y la altura del rectangulo (ambiente).


Espero me hayas entendido y lo puedas implementar.

Saludos