Page 194

3.5 Paso de par´ametros * Sonda ****************************************/

188 189 191 192 193 194 195 196 198 199

void lanzar_sonda(int fila, int columna, char tablero[][COLUMNAS], struct GrupoNaufragos * grupoNaufragos) /* Lanza una sonda en las coordenadas indicadas. Actualiza el tablero con el resultado del * sondeo. Si se detecta un n´ aufrago en el punto de lanzamiento de la sonda, lo rescata. */ { int detectados = 0, i;

200

// Recorrer la vertical for (i=0; i<FILAS; i++) { if (hay_naufrago(i, columna, grupoNaufragos)) detectados++; if (tablero[i][columna] == NO_SONDEADA) tablero[i][columna] = SONDEADA; }

201 202 203 204 205 206 207 208

// Recorrer la horizontal for (i=0; i<COLUMNAS; i++) { if (hay_naufrago(fila, i, grupoNaufragos)) detectados++; if (tablero[fila][i] == NO_SONDEADA) tablero[fila][i] = SONDEADA; }

209 210 211 212 213 214 215 216

// Ver si acertamos y hay una n´ aufrago en esta misma casilla. if (hay_naufrago(fila, columna, grupoNaufragos)) { tablero[fila][columna] = RESCATADO; // En tal caso, ponemos una X. rescate(fila, columna, grupoNaufragos); } else tablero[fila][columna] = ’0’ + detectados; // Y si no, el n´ umero de n´ aufragos detectados.

217 218 219 220 221 222 223 224

}

225 226 227 228 229 230 231 232

int main(void) { char espacio[FILAS][COLUMNAS]; struct GrupoNaufragos losNaufragos; int sondas_disponibles = SONDAS; char coordenadas[TALLACAD+1]; int fila, columna;

233 234

srand (time(0));

235 236 237 238

pon_naufragos(&losNaufragos, 5); inicializa_tablero(espacio); muestra_tablero(espacio);

239 240 241 242 243 244 245 246 247 248 249 250 251

while (sondas_disponibles > 0 && perdidos(&losNaufragos) > 0) { printf ("Hay %d n´ aufragos\n", perdidos(&losNaufragos)); printf ("Dispones de %d sondas\n", sondas_disponibles); printf ("Coordenadas: "); scanf ("%s", coordenadas); while (!de_numero_y_letra_a_fila_y_columna(coordenadas, &fila, &columna)) { printf ("Coordenadas no v´ alidas. Int´ entelo de nuevo.\nCoordenadas: "); scanf ("%s", coordenadas); } lanzar_sonda(fila, columna, espacio, &losNaufragos); muestra_tablero(espacio); sondas_disponibles--; }

252

188

Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement