Codigo C++ Comentado
jesus.alvarez17 de Marzo de 2014
3.778 Palabras (16 Páginas)283 Visitas
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
char menu (void);
int op1 (void);
int op1_nivel (void);
int op1_tiros (void);
void previa (int opc1_nivel, int tiros, int paso);
void preparatablero (int tablero[12][12], int estado[12][12], int nbarcos[4]);
void xyfilacol (int fila, int col, int*x, int*y);
void dibuja (void);
void vecino (int tablero [12][12], int x, int y);
int choque (int tablero[12][12], int x, int y);
void iniciatablero (int tablero[12][12], int estado[12][12]);
void jugar (int tablero[12][12], int estado[12][12], int nbarcos[4], int tiros);
void descubretablero (int tablero[12][12]);
void main ()
{
char opc, salir, defecto;
int opc1, opc1_nivel=2, opc1_tiros, paso=0;
int otra;
int tiros = 10;
int nbarcos [4] = {1,2,3,4};
int tablero [12][12];
int estado [12][12];
do
{
opc=menu();
switch (opc)
{
case '1':
{
do
{
opc1 = op1();
if (opc1 == 1)
{
do
{
opc1_nivel = op1_nivel();
paso=1;
if (opc1_nivel == 1)
{
nbarcos [0] = 2;
nbarcos [1] = 3;
nbarcos [2] = 4;
nbarcos [3] = 5;
gotoxy (26,18);
printf ("EL NIVEL SELECCIONADO ES %i", opc1_nivel);
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}//FIN DEL IF
if (opc1_nivel == 2)
{
nbarcos [0] = 1;
nbarcos [1] = 2;
nbarcos [2] = 3;
nbarcos [3] = 4;
gotoxy (26,18);
printf ("EL NIVEL SELECCIONADO ES %i", opc1_nivel);
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}//FIN DEL IF
if (opc1_nivel == 3)
{
nbarcos [0] = 0;
nbarcos [1] = 1;
nbarcos [2] = 2;
nbarcos [3] = 3;
gotoxy (26,18);
printf ("EL NIVEL SELECCIONADO ES %i", opc1_nivel);
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}//FIN DEL IF
if ((opc1_nivel <1) || (opc1_nivel>3))
{
gotoxy (30,18);
printf ("OPCION EQUIVOCADA");
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}//FIN DEL IF
}while ((opc1_nivel >3) || (opc1_nivel <1));
}//FIN DEL IF OPC1
if (opc1 == 2)
{
do
{
opc1_tiros = op1_tiros ();
paso=1;
if (opc1_tiros == 1)
{
tiros = 8;
gotoxy (28,18);
printf ("PUEDES DISPARAR %i VECES",tiros);
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}
if (opc1_tiros == 2)
{
tiros = 10;
gotoxy (28,18);
printf ("PUEDES DISPARAR %i VECES",tiros);
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}
if (opc1_tiros == 3)
{
tiros = 12;
gotoxy (28,18);
printf ("PUEDES DISPARAR %i VECES",tiros);
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}
if ((opc1_tiros <1) || (opc1_tiros >3))
{
gotoxy (30,18);
printf ("OPCION EQUIVOCADA");
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}//FIN DEL IF
}while ((opc1_tiros >3) || (opc1_tiros <1));
}//FIN DEL IF OPC2
if (opc1 == 3)
{
nbarcos [0] = 1;
nbarcos [1] = 2;
nbarcos [2] = 3;
nbarcos [3] = 4;
paso = 0;
tiros = 10;
clrscr();
gotoxy(62,25);
printf("Jes£s Alvarez Ruiz");
gotoxy (20,10);
printf ("RESTABLECIDO LOS PARAMETROS POR DEFECTO");
gotoxy (1,25);
printf ("Presione una tecla para volver");
getch();
}//FIN DEL IF
if ((opc1<1) || (opc1>4))
{
gotoxy (30,18);
printf ("OPCION EQUIVOCADA");
gotoxy (1,25);
printf ("Presione una tecla para continuar");
getch();
}
}while (opc1!= 4);
break;
}//FIN DEL CASE '1'
case '2':
{
clrscr();
if (paso == 0)
{
gotoxy(62,25);
printf("Jes£s Alvarez Ruiz");
gotoxy (15,5);
printf ("¨Desea utilizar los parametros por defecto?
(S/N)");
defecto = (toupper (getche()));
if (defecto == 'S')
{
previa(opc1_nivel, tiros, paso);
}
else
{
break;
}
}
do
{
if (paso == 1)
{
previa (opc1_nivel, tiros, paso);
}
preparatablero (tablero, estado, nbarcos);
dibuja ();
jugar (tablero, estado, nbarcos, tiros);
clrscr();
gotoxy(62,25);
printf("Jes£s Alvarez Ruiz");
gotoxy (10,5);
printf ("Desea jugar otra partida con los mismos parámetros (S/N) : ");
otra = (toupper (getche()));
}while (otra == 'S');
break;
}//FIN DEL CASE '2'
case '3':
{
do
{
clrscr();
gotoxy (20,10);
printf ("Desea abandonar el Juego (S/N) : ");
salir = toupper(getche());
}while ((salir !='S') && (salir !='N'));
if (salir =='N') opc='';
break;
}//FIN DEL CASE '3'
}//FIN DEL SWITCH
}while (opc!='3');
}//FIN DE LA FUNCION PRINCIPAL MAIN
char menu (void)
{
char menu;
clrscr();
gotoxy(62,25);
printf("Jes£s Alvarez Ruiz");
textcolor (15);
gotoxy (37,5);
cprintf ("MENU");
gotoxy (32,6);
cprintf ("Hundir la flota");
gotoxy (23,8);
cprintf ("1.- Seleccionar parametros del juego");
gotoxy (23,9);
cprintf ("2.- Jugar");
gotoxy (23,10);
cprintf ("3.-
...