Browse Source

Como en el libro

Luis Albertorio 8 years ago
parent
commit
3ad04b2ea0
2 changed files with 51 additions and 40 deletions
  1. 11
    1
      README-en.md
  2. 40
    39
      README-es.md

+ 11
- 1
README-en.md View File

@@ -1,4 +1,3 @@
1
-
2 1
 # Selection Structures - Car Scrolling Game
3 2
 
4 3
 ![main1.png](images/main1.png)
@@ -42,6 +41,16 @@ The controls for this game are simple: the up arrow moves the car up and the dow
42 41
 
43 42
 ---
44 43
 
44
+!INCLUDE "../../eip-diagnostic/car-scrolling/en/diag-car-scrolling-01.html"
45
+<br>
46
+
47
+!INCLUDE "../../eip-diagnostic/car-scrolling/en/diag-car-scrolling-02.html"
48
+<br>
49
+
50
+---
51
+
52
+---
53
+
45 54
 
46 55
 ## Laboratory Session:
47 56
 
@@ -152,3 +161,4 @@ Use "Deliverables" in Moodle to hand in the `work.cpp` file that contains the fu
152 161
 
153 162
 ### References
154 163
 [1] Dave Feinberg, http://nifty.stanford.edu/2011/feinberg-generic-scrolling-game/
164
+

+ 40
- 39
README-es.md View File

@@ -1,4 +1,3 @@
1
-
2 1
 #Estructuras de decisión - Juego de desplazamiento de carro
3 2
 
4 3
 ![main1.png](images/main1.png)
@@ -20,7 +19,9 @@ En casi todas las instancias en que queremos resolver un problema hay una o más
20 19
 Antes de llegar al laboratorio debes:
21 20
 
22 21
 1. Haber repasado los siguientes conceptos:
22
+
23 23
     a. operadores lógicos
24
+
24 25
     b. if, else, else if, switch
25 26
 
26 27
 2. Haber estudiado los conceptos e instrucciones para la sesión de laboratorio.
@@ -34,7 +35,17 @@ Antes de llegar al laboratorio debes:
34 35
 
35 36
 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.
36 37
 
37
-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 obsteaculos 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`.
38
+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`.
39
+
40
+---
41
+
42
+---
43
+
44
+!INCLUDE "../../eip-diagnostic/car-scrolling/es/diag-car-scrolling-01.html"
45
+<br>
46
+
47
+!INCLUDE "../../eip-diagnostic/car-scrolling/es/diag-car-scrolling-02.html"
48
+<br>
38 49
 
39 50
 ---
40 51
 
@@ -60,42 +71,40 @@ El primer paso en esta experiencia de laboratorio es familiarizarte con las func
60 71
 
61 72
 3. 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.** 
62 73
 
63
-4. Vas a necesitar algunos de los métodos definidos en los siguientes  archivos para crear tu código. 
74
+4. Vas a necesitar algunos de los métodos definidos en los siguientes  archivos para crear tu código.
64 75
 
65
-    * `car.h` y `car.cpp`: contienen la definición de la clase `Car`, los métodos de esta clase y sus declaraciones.
66
-    *  `flag.h` y `flag.cpp`: contienen la definición de la clase `Flag`, los métodos de esta clase y sus declaraciones.
67
-    *  `obtstacle.h` y `obstacle.cpp`: contienen la definición de la clase `Obstacle`, los métodos de esta clase y sus declaraciones.
68
-    * `play.h` y `play.cpp`: contienen la definición de la clase `Play`, los métodos de esta clase y sus declaraciones.
69
-    
76
+   * `car.h` y `car.cpp`: contienen la definición de la clase `Car`, los métodos de esta clase y sus declaraciones.
77
+   *  `flag.h` y `flag.cpp`: contienen la definición de la clase `Flag`, los métodos de esta clase y sus declaraciones.
78
+   *  `obtstacle.h` y `obstacle.cpp`: contienen la definición de la clase `Obstacle`, los métodos de esta clase y sus declaraciones.
79
+   * `play.h` y `play.cpp`: contienen la definición de la clase `Play`, los métodos de esta clase y sus declaraciones.
70 80
 
71
-    Familiarízate con los métodos en estos archivos. Pon énfazis en los siguientes métodos:
81
+Familiarízate con los métodos en estos archivos. Pon énfazis en los siguientes métodos:
72 82
 
73
-    * `Car::getYCar()`: Devuelve la coordenada en $Y$ de la posición del carro en la pista.
74
-    * `Flag::getXFlag()`: Devuelve la coordenada en $X$ de la posición de la bandera en la pista.
75
-    * `Flag::getYFlag()`: Devuelve la coordenada en $Y$ de la posición de la bandera en la pista.
76
-    * `Flag::hide()`: Esconde la bandera.  Desaparece de la pista.
77
-    * `Obstacle::getXObstacle()`: Devuelve la coordenada en $X$ de la  posición del obstáculo en la pista.
78
-    * `Obstacle::getYObstacle()`: Devuelve la coordenada en $Y$ de la posición del obstáculo en la pista.
79
-    * `Play::setScore(n)`: Recibe un número entero y lo suma a la puntuación del juego.
83
+   * `Car::getYCar()`: Devuelve la coordenada en $$Y$$ de la posición del carro en la pista.
84
+   * `Flag::getXFlag()`: Devuelve la coordenada en $$X$$ de la posición de la bandera en la pista.
85
+   * `Flag::getYFlag()`: Devuelve la coordenada en $$Y$$ de la posición de la bandera en la pista.
86
+   * `Flag::hide()`: Esconde la bandera.  Desaparece de la pista.
87
+   * `Obstacle::getXObstacle()`: Devuelve la coordenada en $$X$$ de la  posición del obstáculo en la pista.
88
+   * `Obstacle::getYObstacle()`: Devuelve la coordenada en $$Y$$ de la posición del obstáculo en la pista.
89
+   * `Play::setScore(n)`: Recibe un número entero y lo suma a la puntuación del juego.
80 90
     
81
-
82
-    Nota que no hay método `getXCar()` porque el  carro no se desplaza en el eje de $X$.  
91
+Nota que no hay método `getXCar()` porque el  carro no se desplaza en el eje de $$X$$.  
83 92
 
84 93
 ### Ejercicio 2: Completar la función para cambiar la pista del juego.
85 94
 
86 95
 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`.  
87 96
 
88 97
 El método `setTrack`  recibe un valor de tipo `Track` que puede ser:
89
-    
90
-    * play::DAY - para la pista de día
91
-    * play::NIGHT - para la pista de la noche
92
-    * play::BEACH - para la pista de la playa
93
-    * play::CANDYLAND - para la pista de dulces
98
+
99
+   * `play::DAY` - para la pista de día
100
+   * `play::NIGHT` - para la pista de la noche
101
+   * `play::BEACH` - para la pista de la playa
102
+   * `play::CANDYLAND` - para la pista de dulces
94 103
 
95 104
 Los atributos de la pista que se pueden cambiar son: 
96 105
 
97
-    * la imagen de la pista usando la función `setTrackPixmap()`
98
-    * la imagen de los obstáculos usando la función `setObstaclesPixmap()`
106
+   * la imagen de la pista usando la función `setTrackPixmap()`
107
+   * la imagen de los obstáculos usando la función `setObstaclesPixmap()`
99 108
 
100 109
 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**).
101 110
 
@@ -109,7 +118,7 @@ Para completar la función `setTrack()`:
109 118
 
110 119
 2. Cambia la imagen de los obstáculos utilizando la estructura de selección `switch` de modo que los obstáculos cambien de acuerdo al valor recibido por `setTrack()`. Si el tipo de pista que se recibe es:
111 120
 
112
-    * `play::DAY` - los obstáculos sean de tipo "hole" o "cone", si el  
121
+    * `play::DAY` - los obstáculos sean de tipo "hole" o "cone" 
113 122
     * `play::NIGHT` - los obstáculos sean de tipo "it" o "zombie"
114 123
     * `play::BEACH` - los obstáculos sean de tipo "spongebob" o "patric"
115 124
     * `play::CANDYLAND` - los obstáculos sean de tipo "monster"
@@ -121,7 +130,7 @@ Para completar la función `setTrack()`:
121 130
 
122 131
 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.
123 132
 
124
-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`.
133
+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`.
125 134
 
126 135
 Si se detecta una colisión la función debe devolver `true` y si no debe devolver `false`.
127 136
 
@@ -129,7 +138,7 @@ Si se detecta una colisión la función debe devolver `true` y si no debe devolv
129 138
 
130 139
 ![ColisionC.png](images/ColisionC.png)
131 140
 
132
-**Figura 1.** La imagen muestra las coordenadas $(CARX,Y)$ que debe tener el obstáculo para que ocurra una colisión.
141
+**Figura 1.** La imagen muestra las coordenadas $$(CARX,Y)$$ que debe tener el obstáculo para que ocurra una colisión.
133 142
 
134 143
 ---
135 144
 
@@ -144,21 +153,13 @@ En este caso si se detecta una colisión, se debe aumentar la puntuación del ju
144 153
 
145 154
 ---
146 155
 
147
-## Entregas
148
-
149
-Utiliza "Entrega" en Moodle para entregar el archivo `work.cpp` que contiene el código con las soluciones para escoger la pista y detectar las colisiones. Recuerda utilizar buenas prácticas de programación, incluir el nombre de los programadores y documentar tu programa.
150
-
156
+##Entregas
151 157
 
158
+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.
152 159
 
153 160
 ---
154 161
 
155 162
 ---
156 163
 
157
-## Referencias
158
-
164
+##Referencias
159 165
 [1] Dave Feinberg, http://nifty.stanford.edu/2011/feinberg-generic-scrolling-game/
160
-
161
-    
162
-
163
----
164
-