Está en la página 1de 13

Juego Submarino.

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int const n=10;
void barcos (int [n][n]);
void tiro (int [n][n]);
void juego (int [n][n]);
void menu ();
void reglas ();
void tablero2 (char [n][n]);
void limpia2 (char [n][n]);
void limpia (int [n][n]);
void tablero (int a[n][n])
{
int x=0, y=0;
cout<<"1 2 3 4 5 6 7 8 9 10 \n";
for (x=0;x<n;x++)
{

cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij";
cout<<"\n";
for (y=0;y<n;y++)
{
cout<<a[x][y]<<" ";
}
cout<<"³"<<x+1<<"\n";
}

cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n";
}
void main()
{
int m[n][n], o[n][n];
limpia (m);
menu ();
}
void menu ()
{
int m[n][n], o[n][n];
char op;
system ("CLS");
cout<<"\n MENU \n";
cout<<"\n a.- Instrucciones del juego \n";
cout<<"\n b.- Juego \n";
cout<<"\n c.- Abandonar el juego \n";
cout<<" \n Eliege una de las siguientes opciones:\n";
cin>>op;
switch (op)
{
case 'a':
reglas ();
break;
case 'b':
limpia (m);
barcos (o);
juego (o);
break;
case 'c':
cout<<" Gracias por jugar\n";
cout<<" Hasta pronto\n";
break;
}
}
void reglas ()
{
int t;
system ("CLS");
cout<<"\n REGLAS Y COMO JUGAR: \n";

cout<<"\n Bienvenido al juego de guerra y estrategias SUBMARINO,\n";


cout<<" estas en una guerra en contra de Estados Unidos, \n";
cout<<" ellos planean atacar tu territorio y tienen una flota de
barcos,\n";
cout<<" tu objetivo es undir cada uno de ellos disparandoles desde un
helicoptero \n";
cout<<" que te proporciono el gobierno, solo tienes que hacer lo
siguiente. \n";
cout<<"\n Tienes que hundir a 5 barcos que se encuentran escondidos \n";
cout<<" en un tablero, Los barcos ya se han acomodado
aleatoriamente.\n";
cout<<" Los barcos que tienes que hundir son uno de 5
bloques, otro de 4 bloques, dos de 3 bloques \n";
cout<<" y uno de 2 bloques. \n";
cout<<"\n para hacer un disparo solo tienes que escribir las
coordenada del bloque que quieres atacar empezando por escribir \n";
cout<<" el valo de Y, despues X...Ejemplo Y=9, X=8...y
atacaras el bloque 8,9 \n";
cout<<"\n Si ya realizado un ataque aparece el simbolo * entonces
no has acertado a ningun barco y esa casilla esta en blanco \n";
cout<<" Pero si aparece una cara triste :( has
acertado a un bloque de algun barco y deves continuar con los siguientes
bloques para eliminarlo\n";
cout<<" Para terminar y ganar el juegodeves de destruir cada uno de
los barcos, si fallas 60 veces el juego terminara \n";
cout<<" y perderas\n";
cout<<"\n Intentalo las veces que quieras hasta que
logres terminar el reto \n";
cout<<"\n Para regresar al menu principal presiona NUMERO \n";
cin>>t;
menu ();
}
void barcos (int o[n][n])
{
int x=0, y=0, z=0,i=0, j=0, q=0;
srand (time(NULL));
limpia (o);
z=rand()%2;
if (z==0)
{
x=rand()%n;
y=rand()%n;
if (y<=4)
{
for (i=0;i<5;i++,y++)
o[x][y]=5;
}
else
{
for (i=0;i<5;i++,y--)
o[x][y]=5;
}
}
else
{
x=rand()%n;
y=rand()%n;
if (x<=4)
{
for (i=0;i<5;i++,x++)
o[x][y]=5;
}
else
{
for (i=0;i<5;i++,x--)
o[x][y]=5;
}
}
z=0;
z=rand()%2;
if(z==0)
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (y<=5)
{
for (i=y;i<4+y;i++)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
else
{
for (i=y;i>4-y;i--)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
}while (q==1);
if (y<=5)
{
for (i=0;i<4;i++,y++)
o[x][y]=4;
}
else
{
for (i=0;i<4;i++,y--)
o[x][y]=4;
}
}
else
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (x<=5)
{
for (i=x;i<4+x;i++)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
else
{
for (i=x;i>4-x;i--)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
}while (q==1);
if (x<=5)
{
for (i=0;i<4;i++,x++)
o[x][y]=4;
}
else
{
for (i=0;i<4;i++,x--)
o[x][y]=4;
}
}
z=0;
z=rand()%2;
if(z==0)
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (y<=6)
{
for (i=y;i<3+y;i++)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
else
{
for (i=y;i>3-y;i--)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
}while (q==1);
if (y<=6)
{
for (i=0;i<3;i++,y++)
o[x][y]=3;
}
else
{
for (i=0;i<3;i++,y--)
o[x][y]=3;
}
}
else
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (x<=6)
{
for (i=x;i<3+x;i++)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
else
{
for (i=x;i>3-x;i--)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
}while (q==1);
if (x<=6)
{
for (i=0;i<3;i++,x++)
o[x][y]=3;
}
else
{
for (i=0;i<3;i++,x--)
o[x][y]=3;
}
}
z=0;
z=rand()%2;
if(z==0)
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (y<=6)
{
for (i=y;i<3+y;i++)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
else
{
for (i=y;i>3-y;i--)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
}while (q==1);
if (y<=6)
{
for (i=0;i<3;i++,y++)
o[x][y]=1;
}
else
{
for (i=0;i<3;i++,y--)
o[x][y]=1;
}
}
else
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (x<=6)
{
for (i=x;i<3+x;i++)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
else
{
for (i=x;i>3-x;i--)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
}while (q==1);
if (x<=6)
{
for (i=0;i<3;i++,x++)
o[x][y]=1;
}
else
{
for (i=0;i<3;i++,x--)
o[x][y]=1;
}
}
z=0;
z=rand()%2;
if(z==0)
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (y<=7)
{
for (i=y;i<2+y;i++)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
else
{
for (i=y;i>2-y;i--)
{
if(o[x][i]!=0)
{
q=1;
}
}
}
}while (q==1);
if (y<=7)
{
for (i=0;i<2;i++,y++)
o[x][y]=2;
}
else
{
for (i=0;i<2;i++,y--)
o[x][y]=2;
}
}
else
{
do
{
q=0;
x=rand()%n;
y=rand()%n;
if (x<=7)
{
for (i=x;i<2+x;i++)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
else
{
for (i=x;i>2-x;i--)
{
if(o[i][y]!=0)
{
q=1;
}
}
}
}while (q==1);
if (x<=7)
{
for (i=0;i<2;i++,x++)
o[x][y]=2;
}
else
{
for (i=0;i<2;i++,x--)
o[x][y]=2;
}
}
tablero (o);
}
void limpia (int a[n][n])
{
int i=0,j=0;
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
a[j][i]=0;
}
}
void juego (int a[n][n])
{
int x, y, c0=0, c1=0, c2=0, c3=0, c4=0, c5=0, t;
char op, op2, i[n][n];
system ("CLS");
limpia2 (i);
do
{
tablero2 (i);
cout<<"Escrbie las coordenadas a donde deseas disparar; Ejem:
y=1, x=2 \n";
cout<<"Y=";
cin>>x;
cout<<"\nX=";
cin>>y;
cout<<"\n";
x=x-1;
y=y-1;
system ("CLS");
switch (a[x][y])
{
case 0:
{
i[x][y]='*';
tablero2 (i);
cout<<"\n Lo siento no has hacertado a ningun
barco \n";
cout<<"\n Quieres hacer otro tiro? s/n \n";
cin>>op;
system ("CLS");
c0++;
}
break;
case 1:
{
if (i[x][y]!=':(')
{
i[x][y]=':(';
tablero2 (i);
cout<<"\n Felicidades le has hacertado a un bloque de
un barco, continua asi y esa flota quedara en el fonfo del mar \n";
cout<<"\n Quieres hacer otro tiro? s/n \n";
cin>>op;
system ("CLS");
c1++;
if(c1==3)
{
cout<<"\n Un barco de tamanio 3 esta
viajando hacia el fondo del mar, bien hecho \n";
cout<<"Pulsa un NUMERO y luego
entrar\n";
cin>>t;
system ("CLS");
}
}
else
{
cout<<"\n Ya has atacado ese bloque
anteriormente, deves poner mas atencion si quierer triunfar \n";
cout<<"\n Quieres hacer otro tiro? s/n
\n";
cin>>op;
system ("CLS");
}
}
break;
case 2:
{
if (i[x][y]!=':(')
{
i[x][y]=':(';
tablero2 (i);
cout<<"\n Felicidades le has hacertado a un bloque de
un barco \n";
cout<<"\n ¿Quieres hacer otro tiro? s/n \n";
cin>>op;
system ("CLS");
c2++;
if (c2==2)
{
cout<<"\n Has hundido un barco de tamanio 2
\n";
cout<<"Pulsa un NUMERO y luego entrar\n";
cin>>t;
system ("CLS");
}
}
else
{
cout<<"\n Ya has atacado ese bloque
anteriormente \n";
cout<<"\n Quieres hacer otro tiro? s/n
\n";
cin>>op;
system ("CLS");
}
}
break;
case 3:
{
if (i[x][y]!=':(')
{
i[x][y]=':(';
tablero2 (i);
cout<<"\n Muy bien hacertaste a un bloque de
barco \n";
cout<<"\n ¿Quieres hacer otro tiro? s/n \n";
cin>>op;
system ("CLS");
c3++;
if (c3==3)
{
cout<<"\n Has hundido un barco de tamanio
3, felicidades \n";
cout<<"Pulsa un NUMERO y luego entrar\n";
cin>>t;
system ("CLS");
}
}
else
{
cout<<"\n ya has puesto un numero ahi antes
\n";
cout<<"\n Quieres hacer otro tiro? s/n
\n";
cin>>op;
system ("CLS");
}
}
break;
case 4:
{
if (i[x][y]!=':(')
{
i[x][y]=':(';
tablero2 (i);
cout<<"\n Le has dado a un bloque de un barco \n";
cout<<"\n ¿Quieres hacer otro tiro? s/n \n";
cin>>op;
system ("CLS");
c4++;
if (c4==4)
{
cout<<"\n Has hundido un barco de tamanio 4 \n";
cout<<"Pulsa un NUMERO y luego entrar\n";
cin>>t;
system ("CLS");
}
}
else
{
cout<<"\n Ya has atacado esa zona
anteriormente \n";
cout<<"\n Quieres hacer otro tiro? s/n
\n";
cin>>op;
system ("CLS");
}
}
break;
case 5:
{
if (i[x][y]!=':(')
{
i[x][y]=':(';
tablero2 (i);
cout<<"\n Exelente trabajo, has hacertado con un
bloque de un barco, sigue atacando por esa zona \n";
cout<<"\n ¿Quieres hacer otro tiro? s/n \n";
cin>>op;
system ("CLS");
c5++;
if (c5==5)
{
cout<<"\n Exelente, has hundido el barco mas
grande de la flota, tamanio 5 \n";
cout<<"Pulsa un NUMERO y luego entrar\n";
cin>>t;
system ("CLS");
}
}
else
{
cout<<"\n Atencion, ya havias atacado
esa zona antes \n";
cout<<"\n Quieres hacer otro tiro? s/n
\n";
cin>>op;
system ("CLS");
}
}
break;
}
if (c0==60)
{
do
{
cout<<"\n Lo siento, has fallado demasiado, quedas eliminado
GAME OVER\n ";
cout<<"....pulsa una: "" n "" para ir al menu e intentarlo
de nuevo....\n";
cin>>op;
}while(op!='n');
}
if(c1+c2+c3+c4+c5==17)
{
do
{
cout<<"\n Devo reconocer tu esfuerzo, has triunfado,
acabaste con todos los barcos, puedes estar tranquilo ahora \n ";
cout<<"....pulsa una: "" n "" pa continuar, y luego
entrar....\n";
cin>>op;
}while(op!='n');
}
}while(op!='n');
cout<<"\n Desea volver al menu principal? s/n \n";
cin>>op2;
if (op2!='n')
menu ();
}
void tablero2 (char a[n][n])
{
char x=0, y=0;
cout<<"1 2 3 4 5 6 7 8 9 10 \n";
for (x=0;x<n;x++)
{
cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij";
cout<<"\n";
for (y=0;y<n;y++)
{
cout<<a[x][y]<<" ";
}
cout<<"³"<<x+1<<"\n";
}

cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n";
}
void limpia2 (char a[n][n])
{
char i=0,j=0;
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
a[j][i]='°';
}
}

También podría gustarte