R-Info: Escriba un programa que le permita al robot recorrer toda la ciudad juntando todas las flores que encuentre
Respuestas
Aquí se puede pensar a la ciudad aludida como una matriz de 100x100. Si el robot empieza en la posición (1,1) y sigue como en la imagen, en el primer momento se moverá hasta (99,1). Podemos hacer de cuenta que una función movxy(int x, int y), encierra todas las acciones para que el robot se mueva al punto (x,y).
Ahora bien, una vez fue hasta (99,1), se moverá primero hasta (99,99) para luego moverse a (98,99) y regresar a (98,1). Luego repite el ciclo a partir de (97,1). Esto nos permite identificar un lazo de iteración cada 2 filas.
A su vez podemos hacer de cuenta que una función DetectaFlor() devuelve la cantidad de flores en cada ubicación que se encontraron.
Con lo cual el programa quedaría:
int main(void){
int Ciudad[100][100];
int CantFlores=0;
int i,j;
movxy(99,0);
for(j=99;j>0;j-=2){
for(i=0;i<100;i++){//Izquierda a derecha
CantFlores++=DetectaFlor();
movxy(j,i);
}
for(i=99;i>0;i--){//Derecha a izquierda
CantFlores++=DetectaFlor();
movxy(j-1,i);
}
}
printf("Encontré %d flores\n",CantFlores);
return 0;
}