#include<stdio.h>
#include<strings.h>
#include<conio.h>
#include<time.h>
void delay(clock_t a)
{
clock_t start;
start = clock();
while(clock()-start<a)
{
}
}
int main()
{
//A:Aircraft carrier
//B:Battleship
//D:Destroyer
//C:Corvette
int i,j,k=0,x,y,chk=0,win=0,uposa[5][2],uposb[4][2],uposd[3][2],uposc[2][2],a=0,b=0,c=0,d=0,probab,diff;
char gridu[10][10],griduv[10][10],gridc[10][10],gridcv[10][10],orin[2],tempstr[10],str[20]="Battleship Game",ch;
for(i=0;i<10;i++)
{
printf("\n");
}
for(i=0;i<30;i++)
{
printf(" ");
}
for(i=0;str[i]!='\0';i++)
{
printf("%c",str[i]);
delay(60);
}
printf("\n");
for(i=0;i<30;i++)
{
printf(" ");
}
delay(1500);
system("cls");
for(;;)
{
system("cls");
for(i=0;i<10;i++)
printf("\n");
for(i=0;i<30;i++)
printf(" ");
printf("1.Play Battleship!\n");
for(i=0;i<30;i++)
printf(" ");
printf("2.Rules\n");
ch=getch();
if(ch==49)
break;
if(ch==50)
{
system("cls");
printf("1. You have to destroy your opponent's war ships before he destroys yours.\n");
printf("2. The battlefield is of 10x10 grid size in which you place your ships\n");
printf("3. You can place your ships by entering its orientation, i.e horizontal or vertical. For horizontal orientation, type 'h' in the orientation option and type 'v' for vertical\n");
printf("4. and its x y coordinates(both separated by a space) where x is the row number and y is the column number\n");
printf("4. You have a fleet of 4 battle ships: Aircraft Carrier (5 units long), Battleship (4 units long), Destroyer (3 units long) and Corvette (2 units long)\n");
printf("5. After placing your ships, you can attack the enemy area. To attack a area, enter its x y coordinate (separated by a space)\n");
printf("6. Attack hit to the enemy ship is denoted by a 'H' and you get an extra turn\n");
printf("7. Attack miss is denoted by a '*' and your turn ends\n");
printf("Press ENTER to continue!");
fflush(stdin);
gets(tempstr);
continue;
}
}
system("cls");
for(i=0;i<10;i++)
printf("\n");
for(i=0;i<30;i++)
printf(" ");
printf("Select the difficulty level:\n");
for(i=0;i<30;i++)
printf(" ");
printf("Amateur\n");
for(i=0;i<30;i++)
printf(" ");
printf("Professional\n");
for(i=0;i<30;i++)
printf(" ");
printf("Legend\n");
ch=getch();
if(ch==49)
diff=9;
if(ch==50)
diff=8;
if(ch==51)
diff=6;
system("cls");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
gridc[i][j]='.';
gridu[i][j]='.';
gridcv[i][j]='.';
}
}
for(i=0;i<10;i++)
{
for(j=0;j<30;j++)
printf(" ");
if(i==0)
{
printf(" ");
for(j=0;j<10;j++)
printf("%d ",j);
printf("\n");
for(j=0;j<30;j++)
printf(" ");
}
printf("%d ",i);
for(j=0;j<10;j++)
printf("%c ",gridu[i][j]);
printf("\n");
}
/*Aircraft carrier*/
for(;;)
{
printf("Aircraft Carrier:\n");
printf("Orientation: ");
scanf("%s",&orin);
printf("x and y coordinates: ");
scanf("%d %d",&x,&y);
if(strcmp(orin,"h")==0)
{
if(y>5 || y<0 || x>9 || x<0)
{
printf("Can't place here. TRY AGAIN!\n");
continue;
}
else
{
for(i=y;i<y+5;i++)
{
gridu[x][i]='A';
uposa[k][0]=x;
uposa[k][1]=i;
k++;
}
break;
}
}
if(strcmp(orin,"v")==0)
{
if(x>5 || x<0 || y>9 || y<0)
{
printf("Can't place here. TRY AGAIN!\n");
continue;
}
else
{
for(i=x;i<x+5;i++)
{
gridu[i][y]='A';
uposa[k][0]=i;
uposa[k][1]=y;
k++;
}
break;
}
}
}
k=0;
system("cls");
for(i=0;i<10;i++)
{
for(j=0;j<30;j++)
printf(" ");
if(i==0)
{
printf(" ");
for(j=0;j<10;j++)
printf("%d ",j);
printf("\n");
for(j=0;j<30;j++)
printf(" ");
}
printf("%d ",i);
for(j=0;j<10;j++)
printf("%c ",gridu[i][j]);
printf("\n");
}
/*B:Battleship*/
for(;;)
{
chk=0;
printf("Battleship:\n");
printf("Orientation: ");
scanf("%s",&orin);
printf("x and y coordinates: ");
scanf("%d %d",&x,&y);
if(strcmp(orin,"h")==0)
{
if(y>6 || y<0 || x>9 || x<0)
{
printf("Can't place here. TRY AGAIN!\n");
continue;
}
else
{
for(i=y;i<y+4;i++)
{
if(gridu[x][i]!='.')
{
printf("Can't place here. TRY AGAIN!\n");
chk=1;
break;
}
}
if(chk==1)
continue;
else
{
for(i=y;i<y+4;i++)
{
gridu[x][i]='B';
uposb[k][0]=x;
uposb[k][1]=i;
k++;
}
break;
}
}
}
if(strcmp(orin,"v")==0)
{
if(x>6 || x<0 || y>9 || y<0)
{
printf("Can't place here. TRY AGAIN!\n");
continue;
}
else
{
for(i=x;i<x+4;i++)
{
if(gridu[i][y]!='.')
{
printf("Can't place here. TRY AGAIN!\n");
chk=1;
break;
}
}
if(chk==1)
continue;
else
{
for(i=x;i<x+4;i++)
{
gridu[i][y]='B';
uposb[k][0]=i;
uposb[k][1]=y;
k++;
}
break;
}
}
}
}
k=0;
system("cls");
for(i=0;i<10;i++)
{
for(j=0;j<30;j++)
printf(" ");
if(i==0)
{
printf(" ");
for(j=0;j<10;j++)
printf("%d ",j);
printf("\n");
for(j=0;j<30;j++)
printf(" ");
}
printf("%d ",i);
for(j=0;j<10;j++)
printf("%c ",gridu[i][j]);
printf("\n");
}
/*Destroyer*/
for(;;)
{
chk=0;
printf("Destroyer:\n");
printf("Orientation: ");
scanf("%s",&orin);
printf("x and y coordinates: ");
scanf("%