|
|
|
|
1
|
-
|
|
|
2
|
#Estructuras de Repetición - Robot cuenta cuartos
|
1
|
#Estructuras de Repetición - Robot cuenta cuartos
|
3
|
|
2
|
|
4
|
![main1.png](images/main1.png)
|
3
|
![main1.png](images/main1.png)
|
|
|
|
|
49
|
1. Verificar si hay una puerta en la pared del norte (N), sur (S), este (E) u oeste (W) del cuarto donde se encuentra.
|
48
|
1. Verificar si hay una puerta en la pared del norte (N), sur (S), este (E) u oeste (W) del cuarto donde se encuentra.
|
50
|
2. Moverse al cuarto que queda justo al norte (N), sur (S), este (E) u oeste (W) del cuarto actual.
|
49
|
2. Moverse al cuarto que queda justo al norte (N), sur (S), este (E) u oeste (W) del cuarto actual.
|
51
|
4. Crear variables y asignarle valores.
|
50
|
4. Crear variables y asignarle valores.
|
52
|
-3. Realizar operaciones suma, resta, multiplicación y resta.
|
|
|
|
|
51
|
+3. Realizar operaciones suma, resta, multiplicación y división.
|
53
|
5. Usar estructuras de decisión y repetición.
|
52
|
5. Usar estructuras de decisión y repetición.
|
54
|
6. Desplegar resultados a pantalla.
|
53
|
6. Desplegar resultados a pantalla.
|
55
|
|
54
|
|
|
|
|
|
150
|
|
149
|
|
151
|
4. Al escribir tu algoritmo debes asegurarte de que el objeto `MainGameWindow` es creado usando el argumento `Mode::SQUARE_TOP_LEFT`. Recuerda, el robot no sabe de antemano cuantos cuartos hay. Prueba tu algoritmo con algunos ejemplos.
|
150
|
4. Al escribir tu algoritmo debes asegurarte de que el objeto `MainGameWindow` es creado usando el argumento `Mode::SQUARE_TOP_LEFT`. Recuerda, el robot no sabe de antemano cuantos cuartos hay. Prueba tu algoritmo con algunos ejemplos.
|
152
|
|
151
|
|
153
|
-5. Si el tamaño de la cuadrícula es 3x3, ¿cuántos cuartos debe visitar el robot para completar tu algoritmo?. ¿Qué tal 4x4? ¿Qué tal $n \times n$ cuartos?
|
|
|
|
|
152
|
+5. Si el tamaño de la cuadrícula es 3x3, ¿cuántos cuartos debe visitar el robot para completar tu algoritmo? ¿Qué tal 4x4? ¿Qué tal $$n \times n$$ cuartos?
|
154
|
|
153
|
|
155
|
6. Presume que deseamos ahorrar en la energía que utiliza el robot. ¿Puedes hacer un algoritmo que utilice menos movidas para el mismo tamaño de cuadrícula?
|
154
|
6. Presume que deseamos ahorrar en la energía que utiliza el robot. ¿Puedes hacer un algoritmo que utilice menos movidas para el mismo tamaño de cuadrícula?
|
156
|
|
155
|
|
157
|
-7. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, entrégalo usando Entrega 1 en Moodle. En el encabezado del algoritmo escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea para una cuadrícula $n \times n$ (algo así como "El robot toma 2n+5 movidas, 5 para llegar al medio y 2n para contar el resto")
|
|
|
|
|
156
|
+7. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, entrégalo usando Entrega 1 en Moodle. En el encabezado del algoritmo escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea para una cuadrícula $$n \times n$$ (algo así como "El robot toma 2n+5 movidas, 5 para llegar al medio y 2n para contar el resto")
|
158
|
|
157
|
|
159
|
|
158
|
|
160
|
### Ejercicio 2 - Cuadrícula rectangular de cuartos
|
159
|
### Ejercicio 2 - Cuadrícula rectangular de cuartos
|
|
|
|
|
165
|
|
164
|
|
166
|
2. Para probar esta parte en programación debes asegurarte que objeto `MainGameWindow` es creado usando el argumento `Mode::RECT_TOP_LEFT`.
|
165
|
2. Para probar esta parte en programación debes asegurarte que objeto `MainGameWindow` es creado usando el argumento `Mode::RECT_TOP_LEFT`.
|
167
|
|
166
|
|
168
|
-3. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, impleméntalo en la función `main`. En el encabezado del programa escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea en una cuadrícula $m \times n$.
|
|
|
|
|
167
|
+3. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, impleméntalo en la función `main`. En el encabezado del programa escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea en una cuadrícula $$m \times n$$.
|
169
|
|
168
|
|
170
|
4. Entrega el archivo `main.cpp` con el código para calcular el número de cuartos del rectángulo usando Entrega 2 en Moodle.
|
169
|
4. Entrega el archivo `main.cpp` con el código para calcular el número de cuartos del rectángulo usando Entrega 2 en Moodle.
|
171
|
|
170
|
|
|
|
|
|
177
|
|
176
|
|
178
|
2. Para probar esta parte en programación debes asegurarte que objeto `MainGameWindow` es creado usando el argumento `Mode::RECT_RANDOM`.
|
177
|
2. Para probar esta parte en programación debes asegurarte que objeto `MainGameWindow` es creado usando el argumento `Mode::RECT_RANDOM`.
|
179
|
|
178
|
|
180
|
-3. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, impleméntalo en la función `main`. En el encabezado del programa escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea en una cuadrícula $m \times n$. En este caso, el número de cuartos a visitar va a depender de la posición inicial del robot, así que expresa el peor de los casos, i.e. ¿cuántos cuartos debe visitar tu algoritmo si el robot comienza en el *peor* de los cuartos.
|
|
|
|
|
179
|
+3. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, impleméntalo en la función `main`. En el encabezado del programa escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea en una cuadrícula $$m \times n$$. En este caso, el número de cuartos a visitar va a depender de la posición inicial del robot, así que expresa el peor de los casos, i.e. ¿cuántos cuartos debe visitar tu algoritmo si el robot comienza en el *peor* de los cuartos.
|
181
|
|
180
|
|
182
|
4. Entrega el archivo `main.cpp` con el código para calcular el número de cuartos del rectángulo con robot en posición aleatoria usando Entrega 3 en Moodle.
|
181
|
4. Entrega el archivo `main.cpp` con el código para calcular el número de cuartos del rectángulo con robot en posición aleatoria usando Entrega 3 en Moodle.
|
183
|
|
182
|
|
|
|
|
|
191
|
|
190
|
|
192
|
2. Para probar esta parte en programación debes asegurarte que objeto `MainGameWindow` es creado usando el argumento `Mode::PYRAMID_RANDOM`.
|
191
|
2. Para probar esta parte en programación debes asegurarte que objeto `MainGameWindow` es creado usando el argumento `Mode::PYRAMID_RANDOM`.
|
193
|
|
192
|
|
194
|
-3. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, impleméntalo en la función `main`. En el encabezado del programa escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea en una cuadrícula $m \times n$. En este caso, el número de cuartos a visitar va a depender de la posición inicial del robot, así que expresa el peor de los caso, i.e. ¿cuántos cuartos visitaría tu algoritmo si el robot comienza en el *peor* de los cuartos.
|
|
|
|
|
193
|
+3. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, impleméntalo en la función `main`. En el encabezado del programa escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea en una cuadrícula $$m \times n$$. En este caso, el número de cuartos a visitar va a depender de la posición inicial del robot, así que expresa el peor de los caso, i.e. ¿cuántos cuartos visitaría tu algoritmo si el robot comienza en el *peor* de los cuartos.
|
195
|
|
194
|
|
196
|
4. Entrega el archivo `main.cpp` con el código para calcular el número de cuartos de la pirámide con robot en posición aleatoria usando Entrega 4 en Moodle.
|
195
|
4. Entrega el archivo `main.cpp` con el código para calcular el número de cuartos de la pirámide con robot en posición aleatoria usando Entrega 4 en Moodle.
|
197
|
|
196
|
|
|
|
|
|
213
|
|
212
|
|
214
|
## Referencias
|
213
|
## Referencias
|
215
|
|
214
|
|
216
|
-[1] Luther A. Tychonievich, Mark S. Sherriff, and Ryan M. Layer, http://nifty.stanford.edu/2011/feinberg-generic-scrolling-game/
|
|
|
|
|
215
|
+[1] Luther A. Tychonievich, Mark S. Sherriff, and Ryan M. Layer, http://nifty.stanford.edu/2015/tychonievich-sherriff-layer-counting-squares/
|