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:
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