1

Páginas: 8 (1785 palabras) Publicado: 23 de mayo de 2015
 1 #include
2 #include
3
4 const NMAX=10; //numero maximo de filas y de columnas
5 const NCASILLASBARCOS=4*1+3*2+2*3+1*4;// sumatoria de "cantidad de casillas de un barco" x "cantidad de barcos"
6
7
8 /*
9 GRAFICAR_TABLERO:
10 Dibuja cualquiera de los tableros segun su contenido grafica "@"=agua "X"= tocado etc.
11 el parametro que le llega puede sercualquier Tablero que es una matriz de 10x10
12 */
13 void GRAFICAR_TABLERO(int T[NMAX][NMAX])
14 {
15 int i,j;
16 printf("\n\n ");
17 for (j=0;j 18 {
19 printf("%d",j);
20 }
21 printf("\n\n");
22 for (i=0;i 23 {
24 printf("%d ",i);
25 for (j=0;j 26 {
27 switch(T[i][j])
28 {
29 case 0: printf(" ");break;//nada
30 case 1: printf("#"); break;//barco
31 case 2: printf("@"); break;//agua
32 case 3: printf("X"); break;//tocado
33 case 5: printf("H"); break;//se dibuja con H los barcos hundidos
34 }
35 }
36 printf("\n");
37 }
38 printf("\n\n");
39 }
40
41
42 /*
43 HAY_ROCE:
44 Segun la ubicacion(nf.nc), si es vertical uhorizontal(op), el tablero (la matriz) y el tamaño del barco
45 hace el calculo si choca un barco con otro o si choca con los bordes
46 devuelve verdadero(1) si toca con algo y falso(0) en caso contrario
47 */
48 int HAY_ROCE(int nf,int nc,char op,int T[NMAX][NMAX],int tamanioBarco)
49 {
50 int roce,i,j;
51
52 roce=0;
53 if(op!='v')
54 {
55 if(nc+tamanioBarco>NMAX)
56 {57 roce=1;
58 }
59 else
60 {
61 for (i=nf-1;((i 62 {
63 for (j=nc-1;((j 64 {
65 if(T[i][j]!=0)
66 {
67 roce=1;
68 }
69 }
70 }
71 }
72 }
73 else
74 {
75 if(nf+tamanioBarco>NMAX)
76 {
77 roce=1;
78}
79 else
80 {
81 for (i=nf-1;((i 82 {
83 for (j=nc-1;((j 84 {
85 if(T[i][j]!=0)
86 {
87 roce=1;
88 }
89 }
90 }
91 }
92 }
93
94 if(roce)
95 {
96 printf("\nEl Barco se ha superpuesto con otro o sobrepasa losbordes,\nIntentelo nuevamente\n");
97 getch();
98 }
99
100 return roce;
101 }
102
103
104
105 /*
106 PONER_BARCO_EN_EL_TABLERO:
107 Segun el tamaño del barco(tamanioBarco) y el tablero que llega como parametro(T)
108 se agrega el barco ya sea vertical u horizontal siempre tomando como referencia el numero de filas
109 y numero de columnas
110 si es vertical
111 OXXX
112 si eshorizontal
113 O
114 X
115 X
116 X
117 siendo O la posicion puesta con numero de filas(nf) y numero de columnas(nc)
118 */
119 void PONER_BARCO_EN_EL_TABLERO(int tamanioBarco,int T[NMAX][NMAX],char jugador[NMAX])
120 {
121 int nc,nf,k;
122 char op;
123 do
124 {
125 clrscr();
126 printf("Tablero del %s",jugador);
127 GRAFICAR_TABLERO(T);
128 printf("Tama¤o del barco %d. Ingresenro de fila y luego nro de columna\n",tamanioBarco);
129 scanf("%d",&nf);
130 scanf("%d",&nc);
131 printf("Ingresar v=Vertical o cualquier otro valor para Horizontal\n");
132 op=getch();
133 }
134 while(HAY_ROCE(nf,nc,op,T,tamanioBarco));
135 if (op=='v')
136 {
137 for(k=0;k 138 T[nf+k][nc]=1;
139 }
140 else
141 {
142for(k=0;k 143 T[nf][nc+k]=1;
144 }
145 clrscr();
146 printf("El Barco del %s se ha cargado con exito quedo de la siguiente forma",jugador);
147 GRAFICAR_TABLERO(T);
148 getch();
149 }
150
151 /*
152 CARGAR_BARCOS
153 Solo llama varias veces a la funcion PONER_BARCO_EN_EL_TABLERO
154 llega como parametros el jugador y el tablero a llenar
155 */
156 void CARGAR_BARCOS(char...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • EL RECICLAJE 1 1 1 1
  • Trinidad 1+1+1=1
  • BIBLIOGRAFIA DE PETER DRUCKER 1 1 1 1 1 1 1
  • Depreciaciones 1 1 1
  • El párrafo 1 1 1
  • FACTORING 1 1 1
  • desarrolloplacenta 1 1 1
  • ACTIVIDAD 1 1 1

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS