Page 181

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

3 Funciones

7 +.++++++.+++++++++++ 8 +.++++++.+++++++++++ Hay 5 n´ aufragos. Dispones de 17 sondas. Coordenadas:

Dos n´aufragos detectados. Parece probable que uno de ellos est´e en la columna I. Lancemos otra sonda en esa columna. Probemos con 2I: 

Coordenadas: 2I ABCDEFGHIJKLMNOPQRST 0 ........2........... 1 +.++++++.+++++++++++ 2 ........X........... 3 ........1........... 4 +.++++++.+++++++++++ 5 .0.................. 6 +.++++++.+++++++++++ 7 +.++++++.+++++++++++ 8 +.++++++.+++++++++++ Hay 4 n´ aufragos. Dispones de 16 sondas. Coordenadas:

¡Bravo! Hemos encontrado a uno de los n´aufragos. En el tablero se muestra con una X. Ya s´olo quedan 4. Bueno. Con esta partida inacabada puedes hacerte una idea detallada del juego. Dise˜ nemos el programa. Empezamos por definir las estructuras de datos. La primera de ellas, el tablero de juego, que es una simple matriz de 9 × 20 casillas. Nos vendr´a bien disponer de constantes que almacenen el n´ umero de filas y columnas para usarlas en la definici´on de la matriz: 1

#include <stdio.h>

2 3 4

#define FILAS #define COLUMNAS

9 20

5 6 7 8

int main(void) { char espacio[FILAS][COLUMNAS];

9

return 0;

10 11

}

La matriz espacio es una matriz de caracteres. Hemos de inicializarla con caracteres ’+’, que indican que no se han explorado sus casillas. En lugar de inicializarla en main, vamos a dise˜ nar una funci´on especial para ello. ¿Por qu´e? Para mantener main razonablemente peque˜ no y mejorar as´ı la legibilidad. A estas alturas no debe asustarnos definir funciones para las diferentes tareas. 1

#include <stdio.h>

2 3 4

#define FILAS #define COLUMNAS

9 20

5 6

#define NO_SONDEADA ’+’

7 8 9 10 11

void inicializa_tablero(char tablero[][COLUMNAS]) /* Inicializa el tablero de juego marcando todas las casillas como no sondeadas. */ { int i, j;

12 13 14 15

for (i=0; i<FILAS; i++) for (j=0; j<COLUMNAS; j++) tablero[i][j] = NO_SONDEADA;

Introducci´ on a la Programaci´ on con C

175

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c