• Informatica
  • Ripropongo la domanda poichè e' stata bloccata la discussione

    closed post
Katia96
Katia96 - Habilis - 218 Punti
Rispondi Cita Salva
/* gioco della battaglia navale. in ogni casella
0 = mare
1 = nave
*/
#include<stdio.h>
#include<stdlib.h>
#include<windows.h> /* serve per la funzione Sleep */
#include<time.h> /* serve per la funzione srand */

#define dim 3 /* dimensioni della griglia di gioco */
#define num_navi 3 /* numero di navi da abbattere */

int batt[dim][dim]; /* griglia di gioco vera */
int battv[dim][dim]; /* griglia di gioco visualizzata */
int r,c,i,j,cont;


/* inizializzazione griglia: all'inizio è tutto mare */
void InizializzaGriglia()
{
for(i=0; i<dim; i++)
for(j=0; j<dim; j++)
{
battv[j]=0;
batt[j]=0;
}
}

/* posizionamento navi */
void PosizionaNavi()
{
cont = 0;
printf("sto posizionando le mie navi...\n";);
while (cont<num_navi)
{
/* estrai a caso l'indice di riga tra 0 e 9*/
srand(time(NULL));
r = rand()%dim;
/* estrai a caso l'indice di colonna tra 0 e 9 */
Sleep(10);
srand(time(NULL));
c = rand()%dim;
/* piazza una nave in riga r e colonna c */
if (batt[r][c]==0)
{
batt[r][c]=1;
cont++;
}
}
}

/* visualizza griglia */
void VisualizzaGriglia()
{
for(i=0; i<dim; i++)
{
for(j=0; j<dim; j++)
printf("%d ",battv[j]);
printf("\n";);
}
}

/* colpo di cannone */
void Spara()
{
printf("riga dove fare fuoco: ";);
scanf("%d", &r);
printf("colonna dove fare fuoco: ";);
scanf("%d", &c);
if (batt[r][c]==1)
{
printf("nave colpita!\n";);
cont++;
printf("restano da colpire %d navi!\n", num_navi-cont);
battv[r][c]=1;
}
else
{
printf("mancato!\n";);
printf("restano da colpire %d navi!\n", num_navi-cont);
}
system("pause";);
}
main()
{
InizializzaGriglia();
PosizionaNavi();
/* inizia il gioco */
cont = 0;
int contspari=0;
while (cont<num_navi&&contspari<=5)
{
system("cls";);
VisualizzaGriglia();
Spara();
contspari+=1;
}
if(contspari>5)
printf(""game over"";);
else
printf("Bravo, hai sconfitto la flotta nemica!\n";);
system("pause";);

devo aggiungere modificando il programma: gioco a due giocatori (in questo caso, ognuno posiziona le proprie navi)
Questo topic è bloccato, non sono ammesse altre risposte.
Come guadagno Punti nel Forum? Leggi la guida completa
In evidenza
Classifica Mensile
Vincitori di agosto
Vincitori di agosto

Come partecipare? | Classifica Community

Community Live

Partecipa alla Community e scala la classifica

Vai al Forum | Invia appunti | Vai alla classifica

Registrati via email