Browse Source

README-es.md edited on August 2, 2016 at 11:32am

Jose R Ortiz Ubarri 8 years ago
parent
commit
93c4b0f958
1 changed files with 21 additions and 22 deletions
  1. 21
    22
      README-es.md

+ 21
- 22
README-es.md View File

1
-#Estructuras de decisión - Juego de desplazamiento de carro
1
+# Estructuras de decisión - Juego de desplazamiento de carro
2
 
2
 
3
 ![main1.png](images/main1.png)
3
 ![main1.png](images/main1.png)
4
 ![main2.png](images/main2.png)
4
 ![main2.png](images/main2.png)
5
 ![main3.png](images/main3.png)
5
 ![main3.png](images/main3.png)
6
 
6
 
7
-[Verano 2016 - Ive]
7
+[Verano 2016 - Ive - Coralys]
8
 
8
 
9
-En casi todas las instancias en que queremos resolver un problema hay una o más opciones que dependen de si se cumplen o no ciertas condiciones. Los programas de computadoras se construyen para resolver problemas y, por lo tanto, deben tener una estructura que permita tomar decisiones. En C++ las instrucciones de decisión (o condicionales) se estructuran utilizando if, else, else if o switch. Muchas veces el uso de estas estructuras también envuelve el uso de expresiones de relación y operadores lógicos. En la experiencia de laboratorio de hoy practicarás el uso de algunas estructuras de decisión completando el diseño de una aplicación de juego de colisiones de carros con obstáculos en una pista.
9
+En casi todas las instancias en que queremos resolver un problema hay una o más opciones que dependen de si se cumplen o no ciertas condiciones. Los programas de computadoras se construyen para resolver problemas y, por lo tanto, deben tener una estructura que permita tomar decisiones. En C++ las instrucciones de decisión (o condicionales) se estructuran utilizando if, else, else if o switch. Muchas veces el uso de estas estructuras también envuelve el uso de expresiones de relación y operadores lógicos. En la experiencia de laboratorio de hoy, practicarás el uso de algunas estructuras de decisión completando el diseño de una aplicación de juego de colisiones de carros con obstáculos en una pista.
10
 
10
 
11
 
11
 
12
+## Objetivos:
12
 
13
 
13
-##Objetivos:
14
-
15
-1.  Utilizar expresiones relacionales y seleccionar operadores lógicos adecuados para la toma de decisiones.
14
+1. Utilizar expresiones relacionales y seleccionar operadores lógicos adecuados para la toma de decisiones.
16
 2. Aplicar estructuras de decisión.
15
 2. Aplicar estructuras de decisión.
17
 
16
 
18
 
17
 
22
 
21
 
23
 1. Repasado los siguientes conceptos:
22
 1. Repasado los siguientes conceptos:
24
 
23
 
25
-    a. operadores lógicos
24
+    a. Operadores lógicos
26
 
25
 
27
     b. if, else, else if, switch
26
     b. if, else, else if, switch
28
 
27
 
29
 2. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
28
 2. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
30
 
29
 
31
-3. Tomado el quiz Pre-Lab que se encuentra en Moodle.
30
+3. Tomado el quiz Pre-Lab, disponible en Moodle.
32
 
31
 
33
 ---
32
 ---
34
 
33
 
37
 
36
 
38
 ## Juego de desplazamiento de carro
37
 ## Juego de desplazamiento de carro
39
 
38
 
40
-Los juegos de colisiones consisten de manejar un objeto esquivando o provocando la posible colisión contra otros objetos. La colisión puede descontar puntos o detener el juego. También hay colisiones con algunos objetos que acumulan puntos.  En el juego de esta experiencia de laboratorio el objeto que se maneja es un carrito, los objetos que causan que el juego se detenga son pinos, agujeros, entre otros, y los objetos que suman puntos son las banderas.
39
+Los juegos de colisiones consisten en manejar un objeto esquivando o provocando la posible colisión contra otros objetos. La colisión puede descontar puntos o detener el juego. También hay colisiones con algunos objetos que acumulan puntos. En el juego de esta experiencia de laboratorio el objeto que se maneja es un carrito, los objetos que causan que el juego se detenga son pinos, agujeros, entre otros, y los objetos que suman puntos son las banderas.
41
 
40
 
42
-Los controles del juego son bien sencillos: la tecla con la flecha hacia arriba desplaza el carro hacia arriba y la tecla con la flecha hacia abajo desplaza el carro hacia abajo.  Al jugar, el juego da la sensación de que el carro está en movimiento hacia la derecha usando un método muy simple: desplazando el fondo con sus obstaculos y banderas hacia la izquierda mientras el carro permanece en el mismo lugar. El jugador puede desplazar el carro hacia arriba o hacia abajo  para esquivar los obstáculos y para capturar las banderas.  De haber una colisión con un obstáculo el juego se detiene.  El jugador puede continuar marcando el botón de `Retry`.
41
+Los controles del juego son bien sencillos: la tecla con la flecha hacia arriba desplaza el carro hacia arriba y la tecla con la flecha hacia abajo desplaza el carro hacia abajo. Al jugar, el juego da la sensación de que el carro está en movimiento hacia la derecha usando un método muy simple: desplazando el fondo con sus obstaculos y banderas hacia la izquierda mientras el carro permanece en el mismo lugar. El jugador puede desplazar el carro hacia arriba o hacia abajo para esquivar los obstáculos y para capturar las banderas. De haber una colisión con un obstáculo el juego se detiene. El jugador puede continuar, marcando el botón de `Retry`.
43
 
42
 
44
 ---
43
 ---
45
 
44
 
72
 1. Carga a `QtCreator` el proyecto `CarScrollingGame`. Hay dos maneras de hacer esto:
71
 1. Carga a `QtCreator` el proyecto `CarScrollingGame`. Hay dos maneras de hacer esto:
73
 
72
 
74
        * Utilizando la máquina virtual: Haz doble “click” en el archivo `CarScrollingGame.pro` que se encuentra  en el directorio `/home/eip/labs/conditionals-carscrollinggame` de la máquina virtual.
73
        * Utilizando la máquina virtual: Haz doble “click” en el archivo `CarScrollingGame.pro` que se encuentra  en el directorio `/home/eip/labs/conditionals-carscrollinggame` de la máquina virtual.
75
-       * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/conditionals-carscrollinggame` para descargar la carpeta `conditionals-carscrollinggame` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `CarScrollingGame.pro`.
74
+       * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el comando `git clone http:/bitbucket.org/eip-uprrp/conditionals-carscrollinggame` para descargar la carpeta `conditionals-carscrollinggame` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `CarScrollingGame.pro`.
76
 
75
 
77
 2. Configura el proyecto. El proyecto consiste de varios archivos. **Solo escribirás código en el archivo** `work.cpp`**. No debes cambiar nada en los demás archivos.** 
76
 2. Configura el proyecto. El proyecto consiste de varios archivos. **Solo escribirás código en el archivo** `work.cpp`**. No debes cambiar nada en los demás archivos.** 
78
 
77
 
79
-3. Vas a necesitar algunos de los métodos definidos en los siguientes  archivos para crear tu código.
78
+3. Vas a necesitar algunos de los métodos definidos en los siguientes archivos para crear tu código.
80
 
79
 
81
        * `car.h` y `car.cpp`: contienen la definición de la clase `Car`, los métodos de esta clase y sus declaraciones.
80
        * `car.h` y `car.cpp`: contienen la definición de la clase `Car`, los métodos de esta clase y sus declaraciones.
82
        *  `flag.h` y `flag.cpp`: contienen la definición de la clase `Flag`, los métodos de esta clase y sus declaraciones.
81
        *  `flag.h` y `flag.cpp`: contienen la definición de la clase `Flag`, los métodos de esta clase y sus declaraciones.
89
        * `Flag::getXFlag()`: Devuelve la coordenada en $$X$$ de la posición de la bandera en la pista.
88
        * `Flag::getXFlag()`: Devuelve la coordenada en $$X$$ de la posición de la bandera en la pista.
90
        * `Flag::getYFlag()`: Devuelve la coordenada en $$Y$$ de la posición de la bandera en la pista.
89
        * `Flag::getYFlag()`: Devuelve la coordenada en $$Y$$ de la posición de la bandera en la pista.
91
        * `Flag::hide()`: Esconde la bandera.  Desaparece de la pista.
90
        * `Flag::hide()`: Esconde la bandera.  Desaparece de la pista.
92
-       * `Obstacle::getXObstacle()`: Devuelve la coordenada en $$X$$ de la  posición del obstáculo en la pista.
91
+       * `Obstacle::getXObstacle()`: Devuelve la coordenada en $$X$$ de la posición del obstáculo en la pista.
93
        * `Obstacle::getYObstacle()`: Devuelve la coordenada en $$Y$$ de la posición del obstáculo en la pista.
92
        * `Obstacle::getYObstacle()`: Devuelve la coordenada en $$Y$$ de la posición del obstáculo en la pista.
94
        * `Play::setScore(n)`: Recibe un número entero y lo suma a la puntuación del juego.
93
        * `Play::setScore(n)`: Recibe un número entero y lo suma a la puntuación del juego.
95
     
94
     
96
-       Nota que no hay método `getXCar()` porque el  carro no se desplaza en el eje de $$X$$.  
95
+       Nota que no hay método `getXCar()` porque el carro no se desplaza en el eje de $$X$$.  
97
 
96
 
98
 ### Ejercicio 2 - Completar la función para cambiar la pista del juego.
97
 ### Ejercicio 2 - Completar la función para cambiar la pista del juego.
99
 
98
 
100
 En este ejercicio utilizarás la estructura de condición de C++ **switch** para cambiar los atributos de la pista. Completarás el método `setTrack` que se encuentra en el archivo `work.cpp`. Este método cambia el ambiente de la pista del juego dependiendo del valor que recibe el parámetro `track_type`.  
99
 En este ejercicio utilizarás la estructura de condición de C++ **switch** para cambiar los atributos de la pista. Completarás el método `setTrack` que se encuentra en el archivo `work.cpp`. Este método cambia el ambiente de la pista del juego dependiendo del valor que recibe el parámetro `track_type`.  
101
 
100
 
102
-El método `setTrack`  recibe un valor de tipo `Track` que puede ser:
101
+El método `setTrack` recibe un valor de tipo `Track` que puede ser:
103
 
102
 
104
    * `play::DAY` - para la pista de día
103
    * `play::DAY` - para la pista de día
105
    * `play::NIGHT` - para la pista de la noche
104
    * `play::NIGHT` - para la pista de la noche
113
 
112
 
114
 La función `setTrackPixmap(Track)` ya está definida y recibe una variable de tipo `Track` que puede ser un valor entre (**play::DAY**, **play::NIGHT**, **play::BEACH**, **play::CANDYLAND**).
113
 La función `setTrackPixmap(Track)` ya está definida y recibe una variable de tipo `Track` que puede ser un valor entre (**play::DAY**, **play::NIGHT**, **play::BEACH**, **play::CANDYLAND**).
115
 
114
 
116
-La función `setObstaclePixmap(string)`  ya está definida y recibe una variable de tipo `string` que puede ser un valor entre (**"hole"**, **"cone"**, **"it"**, **"zombie"**, **"spongebob"**, **"patric"**, **"monster"**).
115
+La función `setObstaclePixmap(string)` ya está definida y recibe una variable de tipo `string` que puede ser un valor entre (**"hole"**, **"cone"**, **"it"**, **"zombie"**, **"spongebob"**, **"patric"**, **"monster"**).
117
 
116
 
118
-#### Instrucciones:
117
+#### Instrucciones
119
 
118
 
120
 Para completar la función `setTrack()`:
119
 Para completar la función `setTrack()`:
121
 
120
 
133
 
132
 
134
 ### Ejercicio 3 - Completar la función para colisiones con obstáculos. 
133
 ### Ejercicio 3 - Completar la función para colisiones con obstáculos. 
135
 
134
 
136
-En este ejercicio completarás el método `obstacleCollision` que se encuentra en el archivo `work.cpp`. La función recibe un objeto de clase `Obstacle` y otro objeto de clase `Car` y debe detectar si hay colisión o no entre el carro y el obstáculo. La función devuelve cierto si hay colisión entre el carro y un obstáculo y falso si no hay colisión.
135
+En este ejercicio completarás el método `obstacleCollision` que se encuentra en el archivo `work.cpp`. La función recibe un objeto de clase `Obstacle` y otro objeto de clase `Car` y debe detectar si hay colisión o no entre el carro y el obstáculo. La función devuelve cierto si hay colisión entre el carro y un obstáculo, y falso si no hay colisión.
137
 
136
 
138
 Para detectar la colisión la función debe solicitar las coordenadas del obstáculo y la coordenada en $$Y$$ del carro.  Recuerda que el carro no se desplaza en la coordenada $$X$$, esa coordenada es fija y está guardada en la variable constante `CARX`.  La colisión ocurre si el obstáculo tiene la misma coordenada en $$X$$ y está a cierta distancia hacia arriba y abajo de la coordenada en $$Y$$ como muestra la Figura 1. El rango de distancia del centro del carro hacia arriba y abajo se encuentra guardada en la variable constante `OBSTACLERANGE`.
137
 Para detectar la colisión la función debe solicitar las coordenadas del obstáculo y la coordenada en $$Y$$ del carro.  Recuerda que el carro no se desplaza en la coordenada $$X$$, esa coordenada es fija y está guardada en la variable constante `CARX`.  La colisión ocurre si el obstáculo tiene la misma coordenada en $$X$$ y está a cierta distancia hacia arriba y abajo de la coordenada en $$Y$$ como muestra la Figura 1. El rango de distancia del centro del carro hacia arriba y abajo se encuentra guardada en la variable constante `OBSTACLERANGE`.
139
 
138
 
140
-Si se detecta una colisión la función debe devolver `true` y si no debe devolver `false`.
139
+Si se detecta una colisión la función debe devolver `true` y si no, debe devolver `false`.
141
 
140
 
142
 ---
141
 ---
143
 
142
 
149
 
148
 
150
 ### Ejercicio 4 - Completar la función para colisiones con banderas.
149
 ### Ejercicio 4 - Completar la función para colisiones con banderas.
151
 
150
 
152
-En este ejercicio completarás el método `flagCollision` que se encuentra en el archivo `work.cpp`. La función recibe un objeto de clase `Obstacle` y otro objeto de clase `Flag` y debe detectar si hay colisión o no entre el carro y la bandera. Esta función es bien similar a la función del Ejericio 3, excepto que esta función no devuelve valor.  Las acciones que ocurren cuando se detecta la colisión se van a tomar dentro de la función.
151
+En este ejercicio completarás el método `flagCollision` que se encuentra en el archivo `work.cpp`. La función recibe un objeto de la clase `Obstacle` y otro objeto de la clase `Flag` y debe detectar si hay colisión o no entre el carro y la bandera. Esta función es bien similar a la función del Ejericio 3, excepto que esta función no devuelve valor. Las acciones que ocurren cuando se detecta la colisión se van a tomar dentro de la función.
153
 
152
 
154
-En este caso si se detecta una colisión, se debe aumentar la puntuación del juego 30 puntos utilizando la función `setScore` y esconder la bandera  utilizando la función `flag.hide()` para crear la ilusión de que se recogió la bandera en la colisión.
153
+En este caso si se detecta una colisión, se debe aumentar la puntuación del juego 30 puntos utilizando la función `setScore`, y se debe esconder la bandera utilizando la función `flag.hide()` para crear la ilusión de que se recogió la bandera en la colisión.
155
 
154
 
156
 
155
 
157
 ---
156
 ---
160
 
159
 
161
 ## Entregas
160
 ## Entregas
162
 
161
 
163
-Utiliza "Entrega" en Moodle para entregar el archivo `work.cpp` que contiene las invocaciones y cambios que hiciste al programa. Recuerda utilizar buenas prácticas de programación, incluir el nombre de los programadores y documentar tu programa.
162
+Utiliza "Entrega" en Moodle para entregar el archivo `work.cpp` que contiene las invocaciones y cambios que hiciste al programa. Recuerda utilizar buenas prácticas de programación, al incluir el nombre de los programadores y documentar tu programa.
164
 
163
 
165
 ---
164
 ---
166
 
165