void playBattleship(void); void initGame(char board[ ], char mask[ ]); void drawGame(char mask[ ], int missilesFired, int missilesRemaining, int score, char previousMove[ ]); void loadShips(char board[ ], char ship[ ]);
int main( ) { playBattleship( ); return 0; }
void playBattleship(void) { char board[391], mask[391]; initGame(board, mask); drawGame(mask, 0, 100, 0, "NA"); }
void initGame(char board[ ], char mask[ ]) { int i; for(i=0; i<390; i++) { board[i] = mask[i] = '~'; }
}
void drawGame(char mask[ ], int missilesFired, int missilesRemaining, int score, char previousMove[ ]) { int i, j; printf(" C Battleship...\n"); printf(" ABCDEFGHIJKLMNOPQRSTUVWXYZ\n"); for(i=0; i<15; i++) { /* display 15 rows of information (incl. border) / if(i < 9) { printf(" %c|", i + 1 + '0'); / for each digit character / } else { printf(" %c|", i + 1 + 55); / for each alphabetic character 'A' through 'F' / } for(j=0; j<26; j++) { / display all 26 columns in each row / printf("%c", mask[j+(i26)]); } printf("|\n"); } }
void loadShips(char board[ ], char ship[ ]) { srand(time(NULL));
int sx[3],sy[3],max[3],scrnx=0,scrny=0;
int flag=1,code=1,i=0,j=0,k=0;
int misfired=0,misremain=10,score=0;
char previousmove[3]="",move[3]="";
scrnx=26;
scrny=15;
max[0]=3;
max[1]=5;
max[2]=6;
max[3]=8;
for(i=0;i<=3;i++)
{
do
{
flag=1;
do{sx[i]=rand() % scrnx-(max[i]+1);}while(sx[i]<=0 || sx[i]>=scrnx-(max[i]+1));
do{sy[i]=rand() % scrny;}while(sy[i]<=0 || sy[i]>=scrny);
for(j=0;j<=3;j++){if(j!=i){if(sx[i]==sx[j] || sy[i]==sy[j]){flag=0;}}}
}while(flag==0);
}
do
{
system("cls");
printf(" C Battleship...\n");
printf(" ABCDEFGHIJKLMNOPQRSTUVWXYZ\n");
for(j=1;j<=scrny;j++)
{
if(j<10)
{
printf("%i|",j);
}else
{
printf("%c|", j+55);
}
for(i=1;i<=scrnx;i++)
{
flag = 1;
for(k=0;k<=3 && flag==1;k++)
{
if(j==sy[k] && i==sx[k])
{
switch(k)
{
case 0:
printf("[F>");
i+=max[k]-1;
break;
case 1:
printf("[SS=>");
i+=max[k]-1;
break;
case 2:
printf("[DDD=>");
i+=max[k]-1;
break;
case 3:
printf("[CCCCC=>");
i+=7;
break;
}
flag=0;
}
}
if(flag==1){printf("~");}
}
printf("\n");
}
printf("\n Missiles Fired: %i\n",misfired);
printf(" Missiles Remaining: %i\n",misremain);
printf(" Previous Move: %s\n",previousmove);
printf(" Current Score: %i\n",score);
printf(" Enter Target Coordinates-->");
scanf("%s",move);
printf("%s",move);
}while(code != 0);
}